pDC->Polygon绘制箭头
时间: 2023-07-21 13:58:55 浏览: 63
以下是绘制箭头的示例代码:
```c++
// 绘制箭头
void DrawArrow(CDC* pDC, CPoint fromPt, CPoint toPt, int size)
{
// 计算箭头末端点坐标
double angle = atan2(fromPt.y - toPt.y, fromPt.x - toPt.x);
CPoint arrow1, arrow2;
arrow1.x = toPt.x + size * cos(angle + M_PI / 6);
arrow1.y = toPt.y + size * sin(angle + M_PI / 6);
arrow2.x = toPt.x + size * cos(angle - M_PI / 6);
arrow2.y = toPt.y + size * sin(angle - M_PI / 6);
// 绘制线段和箭头
pDC->MoveTo(fromPt);
pDC->LineTo(toPt);
pDC->MoveTo(arrow1);
pDC->LineTo(toPt);
pDC->LineTo(arrow2);
}
```
其中,参数`fromPt`和`toPt`分别表示箭头的起点和终点,`size`表示箭头的大小。箭头是由一条直线和两条斜线组成的,通过计算箭头末端点的坐标,然后绘制线段和箭头即可。
相关问题
postgis中 <->
在 PostGIS 中,<-> 是一个空间运算符,用于计算两个几何对象之间的最短距离。它计算两个几何对象之间的距离,并返回一个浮点数。
使用该运算符时,需要将两个几何对象作为参数传递给它。例如,以下示例计算名为“point_table”的表中所有点到名为“polygon_table”的表中所有多边形的距离:
```
SELECT point_table.id, polygon_table.id, point_table.geom <-> polygon_table.geom AS distance
FROM point_table, polygon_table;
```
在这个例子中,`<->` 运算符计算了每个点与每个多边形之间的距离,并将其作为一个名为 “distance” 的新列返回。
Polygon * ppoly1 = ▭ Polygon * ppoly2 = &trgl; Polygon * ppoly3 = &poly; ppoly1->set_values(5, 8); ppoly2->set_values(5, 8); ppoly3->set_values(5, 8); cout << ppoly1->area() <<" "<<rect.area()<< endl; cout << ppoly2->area() <<" "<<trgl.area()<< endl; cout << ppoly3->area() <<" "<<poly.area()<< endl;
这段代码是关于多态的示例。其中,rect、trgl和poly都是Polygon类的派生类。ppoly1、ppoly2和ppoly3是指向Polygon对象的指针,但是它们实际上指向的是rect、trgl和poly对象。当调用ppoly1、ppoly2和ppoly3的area()函数时,由于这些指针是指向不同的对象的,因此它们会调用不同的派生类的area()函数,从而产生不同的结果。这就是多态的实现方式。
需要注意的是,set_values()函数是在Polygon类中定义的,但是由于rect、trgl和poly都是Polygon类的派生类,它们都继承了set_values()函数。因此,当使用ppoly1、ppoly2和ppoly3指针调用set_values()函数时,它们会分别调用rect、trgl和poly对象的set_values()函数。