如何将两个双数据类型元素转换为一个Point数据类型

时间:2013-04-11 01:01:27

标签: c++

我正在迭代存储点数据类型[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);

如果有人建议解决方案,那么转换是否可行??

4 个答案:

答案 0 :(得分:2)

如果你想从你的两个数据点中创建一个Point,那么Point只需要一个带有两个双精度作为参数的构造函数并使用它:

 Point vec(Pta, Ptb) ;

答案 1 :(得分: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只是一个包含xy成员的简单结构,您可以执行以下操作:

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;


}