我正在创建一个结构作为数据类型我基本上想要的是存储行坐标的数据,但是当我通过两行来找到它们的距离时,在参数中我传递一个简单的数组元素接收参数是*如何解决它。
这是结构。
struct line_coordinates{
double x1,y1,x2,y2;
};
这里我正在创建一个结构数组 line_coordinates * array_line; 现在调用getdistance()并传递参数
void initlize(vector<Vec2f> line1){
lines=line1;
array_line=new line_coordinates[lines.size()];
cout<<getdistance(array_line[0],array_line[1]);
double getdistance(line_coordinates *line1,line_coordinates *line2 )
{
double midpointx1,midpointy1,midpointx2,midpointy2;
midpointx1 =((line1->x1+line1->x2)/2);
midpointy1=((line1->y1+line1->y2)/2);
midpointx2 =((line2->x1+line2->x2)/2);
midpointy2=((line2->y1+line2->y2)/2);
double dist = sqrt(pow(midpointx2 - midpointx1, 2) + pow(midpointy2 - midpointy1, 2));
return dist;
}
答案 0 :(得分:1)
让我们看看,array_line
的类型为line_coordinates*
,这意味着array_line[i]
属于可转换为line_coordinates const&
的类型,这意味着您应该通过它通过引用或代替值:
double getdistance(line_coordinates const& line1,line_coordinates const& line2)
// ^^^^^^ ^^^^^^
哦顺便说一句,请使用std::vector
。