开门见山,将问题描述如下:
程序中要判断点在三角形内,我是用的面积法写的程序,假设三角形ABC和平面一点P,三角形ABC面积为S,P和三角形ABC任意两个顶点组成的3个三角形的面积分别为S1、S2、S3
程序 if(S==S1+S2+S3){
;
;
}
问题是S、S1、S2、S3是带有小数位的foloat基本数据类型,本应该是三角形内的点P也被判断成不满足等式了,导致if语句块无法执行,请问这种情况怎样处理!
程序中要判断点在三角形内,我是用的面积法写的程序,假设三角形ABC和平面一点P,三角形ABC面积为S,P和三角形ABC任意两个顶点组成的3个三角形的面积分别为S1、S2、S3
程序 if(S==S1+S2+S3){
;
;
}
问题是S、S1、S2、S3是带有小数位的foloat基本数据类型,本应该是三角形内的点P也被判断成不满足等式了,导致if语句块无法执行,请问这种情况怎样处理!
如果 P 点在三角形内部
那么从三角形的3顶点 A、B、C 到P 的矢量与边乘积都是大于 0 的
AP * AB > 0
BP * BC > 0
CP * CA > 0
Add max(addend.scale(), augend.scale())
Subtract max(minuend.scale(), subtrahend.scale())
Multiply multiplier.scale() + multiplicand.scale()
Divide dividend.scale() - divisor.scale()