如何判断一个点 在不在一个不规则的正四边形内

l_lcn 2012-02-05 04:24:52
RT
...全文
307 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
threenewbee 2012-02-08
  • 打赏
  • 举报
回复
每条边都可以得到一个 ax + b > y 的不等式。
将这个点代入4个不等式,如果同时满足,在里面,否则在外面。
yangguosheng 2012-02-08
  • 打赏
  • 举报
回复
关注,有没有主题的代码。学习学习。
gengchenhui 2012-02-08
  • 打赏
  • 举报
回复
什么是“不规则的正四边形”?
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 qianjin036a 的回复:]

判断一个点是否在一个三角形中有现成的方法,即:

设三角形三个点
A(a1,a2),B(b1,b2),C(c1,c2)
三条边方程
BC:fa(x,y)=0
AC:fb(x,y)=0
AB:fc(x,y)=0
以BC为例,在三角形内的点必须与点A在BC的同侧
所以对于点D(x,y)
在三角形内首先要满足fa(x,y)*fa(a1,a2)>0
其他边也同理
所以只要比较
……
[/Quote]

很好!
-晴天 2012-02-05
  • 打赏
  • 举报
回复
判断一个点是否在一个三角形中有现成的方法,即:

设三角形三个点
A(a1,a2),B(b1,b2),C(c1,c2)
三条边方程
BC:fa(x,y)=0
AC:fb(x,y)=0
AB:fc(x,y)=0
以BC为例,在三角形内的点必须与点A在BC的同侧
所以对于点D(x,y)
在三角形内首先要满足fa(x,y)*fa(a1,a2)>0
其他边也同理
所以只要比较
fa(x,y)*fa(a1,a2)
fb(x,y)*fb(b1,b2)
fc(x,y)*fc(c1,c2)
这三个数的正负性
1三个数都是正数:D在三角形内
2至少有一个负数:D在三角形外
3有且只有一个0,另两个为正数:在三角形边上
4有且只有一个0,一个正数一个负数:在三角形边的延长线上,也算在三角形外,因为满足2
5有二个0:在三角形的顶点上
6不可能出现3个0,或3个负数,或一个0两个负数的情况

以上来自百度.

对于不规则四边形,只要以两不相邻的角相连接,将其分成两个三角形,再分别判断就行了.
l_lcn 2012-02-05
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 maco_wang 的回复:]

SQL code

--当前点坐标:(1,2)
declare @x int set @x=1
declare @y int set @y=2

--不规则四边形也得有四个顶点
[/Quote]

在用C# 做一个魔方. 3D显示 .
变形以后, 如何判断当前鼠标坐标 在不在 一个四边形内部
l_lcn 2012-02-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 maco_wang 的回复:]

要用数据库来处理图形?
[/Quote]

发错地方了
叶子 2012-02-05
  • 打赏
  • 举报
回复

--当前点坐标:(1,2)
declare @x int set @x=1
declare @y int set @y=2

--不规则四边形也得有四个顶点
叶子 2012-02-05
  • 打赏
  • 举报
回复
要用数据库来处理图形?

4,820

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 图表区
社区管理员
  • 图表区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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