请问:如何计算出一条线宽为5的直线的区域(region)??

Sword_Sharp 2003-10-18 12:18:15
我在视图上绘制了一条线宽为5的直线,现在想获得他的区域(CRgn)以便判断鼠标是否在这个区域上。我该如何做?
...全文
61 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Sword_Sharp 2003-10-18
  • 打赏
  • 举报
回复
没有简单一些的方法来计算直线的区域吗?系统中有没有相关的函数?
Kingore 2003-10-18
  • 打赏
  • 举报
回复
你在画直线的时候应该记录必要的数据:如起点,终点,线宽等。

然后可以定义一个线的外围区域比如:CRgn。刚好包围这条线段(稍微大一点)。


移动鼠标时,判断鼠标是否在刚才那个区域中。。。旧可以了。
Sword_Sharp 2003-10-18
  • 打赏
  • 举报
回复
谢谢各位了
mct1025 2003-10-18
  • 打赏
  • 举报
回复
CDC *pDC = GetDC();
CPen pen(PS_SOLID,5,RGB(255,0,0));
CPen *pOldPen = pDC->SelectObject(&pen);

pDC->BeginPath();
pDC->MoveTo(0,0);
pDC->LineTo(100,100);
pDC->EndPath();

pDC->WidenPath();
CRgn rgn;
rgn.CreateFromPath(pDC);

if (rgn.PtInRegion(11,10))
AfxMessageBox("ok");

pDC->SelectObject(pOldPen);
ReleaseDC(pDC);

19,469

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧