添加了获得公交车在画布中位置的函数
This commit is contained in:
parent
6c9328d783
commit
50aa9d9c6a
|
@ -8,10 +8,19 @@
|
||||||
#include "QGraphicsScene"
|
#include "QGraphicsScene"
|
||||||
#include "QGraphicsPixmapItem"
|
#include "QGraphicsPixmapItem"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 储存每个站点位置的类
|
||||||
|
*/
|
||||||
class PosPair{
|
class PosPair{
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
/*
|
||||||
|
* 站点位置的x坐标
|
||||||
|
*/
|
||||||
int pos_x;
|
int pos_x;
|
||||||
|
/**
|
||||||
|
* 站点位置的y坐标
|
||||||
|
*/
|
||||||
int pos_y;
|
int pos_y;
|
||||||
|
|
||||||
PosPair();
|
PosPair();
|
||||||
|
@ -21,17 +30,31 @@ public:
|
||||||
* @return 站点之间的距离
|
* @return 站点之间的距离
|
||||||
*/
|
*/
|
||||||
int GetStopSpaceLength(int stop_number) const;
|
int GetStopSpaceLength(int stop_number) const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 加上一定的距离
|
* 加上一定的距离
|
||||||
* @param length 需要加上的距离
|
* @param length 需要加上的距离
|
||||||
*/
|
*/
|
||||||
void AddLength(int length);
|
void AddLength(int length);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得该站点公交车停车的位置x坐标
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
int GetBusPosX() const;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得该站点公交车停车位置的y坐标
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
int GetBusPosY() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
const int stop_begin_x = 100;
|
const int stop_begin_x = 100;
|
||||||
const int stop_begin_y = 80;
|
const int stop_begin_y = 80;
|
||||||
const int stop_rail_width = 300;
|
const int stop_rail_width = 300;
|
||||||
const int stop_rail_height = 200;
|
const int stop_rail_height = 200;
|
||||||
|
const int stop_bus_distance = 20;
|
||||||
|
|
||||||
int distance = 0;
|
int distance = 0;
|
||||||
};
|
};
|
||||||
|
|
|
@ -25,7 +25,7 @@ SceneManager::~SceneManager()
|
||||||
|
|
||||||
void SceneManager::SetStopScene(int node_number)
|
void SceneManager::SetStopScene(int node_number)
|
||||||
{
|
{
|
||||||
// 先清除以下屏幕
|
// 先清除屏幕
|
||||||
ClearScene();
|
ClearScene();
|
||||||
|
|
||||||
stop_node_number = node_number;
|
stop_node_number = node_number;
|
||||||
|
@ -117,3 +117,43 @@ void PosPair::AddLength(int length)
|
||||||
pos_x = stop_begin_x + distance;
|
pos_x = stop_begin_x + distance;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int PosPair::GetBusPosX() const
|
||||||
|
{
|
||||||
|
int result;
|
||||||
|
|
||||||
|
if(pos_x <= stop_begin_x)
|
||||||
|
{
|
||||||
|
result = stop_begin_x - stop_bus_distance;
|
||||||
|
}
|
||||||
|
else if(pos_x >= stop_begin_x + stop_rail_width)
|
||||||
|
{
|
||||||
|
result = pos_x + stop_bus_distance;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
result = pos_x;
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
int PosPair::GetBusPosY() const
|
||||||
|
{
|
||||||
|
int result;
|
||||||
|
|
||||||
|
if(pos_y <= stop_begin_y)
|
||||||
|
{
|
||||||
|
result = stop_begin_y - stop_bus_distance;
|
||||||
|
}
|
||||||
|
else if(pos_y >= stop_begin_y + stop_rail_width)
|
||||||
|
{
|
||||||
|
result = pos_y + stop_bus_distance;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
result = pos_y;
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user