我正在迭代存储点数据类型[x,y]的向量,以便对每个x和y进行一些单独的计算....从向量元素2中减去x来自向量元素1的x ... ....为此我将这些点转换为双数据类型.....现在我需要将它们放回Point数据类型.....?
示例代码:
double Pta;
double Ptb;
double vect;
double PtResult;
for(vector<Point>::iterator iter_a = Left_Arm_xy.begin()+1; iter_a != Left_Arm_xy.end(); ++iter_a)
{
if(center.y <= 240)
{
Pta = iter_a->x - (iter_a -1)->x;
Ptb = iter_a->y - (iter_a -1)->y;
vect = ((Point)Pta, Ptb);
}
编译器指示:“错误:没有运算符”=“匹配这些操作数”在代码的最后一行
vect = ((Point)Pta, Ptb);
如果有人建议解决方案,那么转换是否可行??
答案 0 :(得分:2)
如果你想从你的两个数据点中创建一个Point
,那么Point
只需要一个带有两个双精度作为参数的构造函数并使用它:
Point vec(Pta, Ptb) ;
答案 1 :(得分:1)
将vect设为2向量,请参阅以下更改:
double x;
double y;
Vec2 vect;
Vec2 PtResult; // not used?
for
(
vector<Point>::iterator iter_a = Left_Arm_xy.begin()+1;
iter_a != Left_Arm_xy.end();
++iter_a
)
{
if(center.y <= 240)
{
x = iter_a->x - (iter_a -1)->x;
y = iter_a->y - (iter_a -1)->y;
vect = new vect(x, y);
}
} }
答案 2 :(得分:1)
如果Point
只是一个包含x
和y
成员的简单结构,您可以执行以下操作:
Point vect;
vect.x = Pta;
vect.y = Ptb;
或更简单:
Point vect;
vect.x = iter_a->x - (iter_a -1)->x;
vect.y = iter_a->y - (iter_a -1)->y;
答案 3 :(得分:0)
首先想要的是每个试图帮助我的人都会得到一个投票:P ....我设法用@Jorge Israel Pena的建议来解决这个问题....
尽管我分享了最终的解决方案代码示例:
double Pta;
double Ptb;
Point vect;
int i = 0;
for(vector<Point>::iterator iter_a = Left_Arm_xy.begin()+1; iter_a != Left_Arm_xy.end(); ++iter_a, i++)
{
if(center.y <= 240)
{
vect.x = Pta = iter_a->x - (iter_a -1)->x;
vect.y = iter_a->y - (iter_a -1)->y;
cout<<"Calculation No. : "<<i<<" ""Center Points: "" "<<*iter_a<<" ""Vector Addition Tail to Head: "" "<<vect<<endl;
}