- UID
- 4723
- 帖子
- 752
- 精华
- 5
- 积分
- 1778
|
我是如何做点p在三角形abc内部的判断的
1.按逆时针方向点击abc,度量出b角,接着点击bca,度量出c角,接着点击cab度量出a角。其中a,b,c按逆时针排列。把角属性设置成有向度。然后用公式:a'=a-sgn(sgn(a)-1)*360度,把角的范围转换到0~360度之间。b,c角的转换同理。
2.先解决判断点p在角cab内的方法:
度量角bap的大小(点的次序很重要),设为ta,并转换到0~360度的范围,得
ta‘=ta-sgn(sgn(ta)-1)*360度,再解释a’-ta‘
对角a的出来,是以ac作为始边处理的。
然后利用逻辑工具包logic-tool的boolean(t)(布尔值)工具,点击参数:a'-ta'得逻辑值ka=0(表示点p在角cab内),
或维ka=1(在角cab外),
3.同理分别以ba为始边处理角b,以cb为始边处理角c,将来得另两个量:
b'-tb',c'-tc'同上,得逻辑值kb,kc。
4.计算t=(1-ka)*(1-kb)*(1-kc),如果t=1,则点p在三角形内,如果t=0则点p在三角形外不。
成品 |
|