如何判断当前鼠标位于哪一个三角形内(很多三角形)

zl3652003 2007-11-06 10:41:58
今天是小弟第一次发帖,请各位大哥不吝赐教,十分感谢!

问题:
一系列的点及其二维坐标,例如p1,p2,p3,....,pn
一系列的网格三角形,是由上面的点组成,例如:△1(p1,p2,p3),△2(p2,p3,p4),△3(p3,p4,p5)...△(pi,pj,pk)
意思就是三角形1,是由第1 2 3点组成,以此类推。

这些点按照顺序绘制出来三角形网格,我现在要用实现这样的功能:
鼠标运动,判断当前鼠标位于哪一个三角形内部,并且返回这个三角形的序号信息,

有什么方法 请大家告诉小弟,我现在还没有分,有分的时候我肯定会还给大家,十分感谢!
...全文
169 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zl3652003 2007-11-10
  • 打赏
  • 举报
回复
谢谢大家的提醒,我是新手,能说得再详细一些么?非常感谢
oneby2 2007-11-08
  • 打赏
  • 举报
回复
CRgn m_rgn;//是你自己定义的一个三角型//三角形好多的话,可以考虑用一个链表


if(m_rgn.PtInRegion(point))
{。。。}
zl3652003 2007-11-08
  • 打赏
  • 举报
回复
那怎么样才能判断位于第几个三角形内呢?所有三角形都是全等的等边三角形,且相互共边
vtkzhang 2007-11-07
  • 打赏
  • 举报
回复
因为三角形的排布并无规律,故只能逐个判断,对于一个三角形,一般先判断外包矩形是否包含该点,如包含的话,还需要进一步判断,方法是若该点同时位于组成三角形的三条线的左侧(或右侧)则认为该点在三角形内。

不过,API函数
BOOL PtInRegion(
HRGN hrgn, // handle to region
int X, // x-coordinate of point
int Y // y-coordinate of point
);
也可以完成你的功能,你可以查看msdn。

19,466

社区成员

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

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