PHP
计算三角形面积
方案一:
没得说 三角形面积=底*高/2。
方案二:
三角形面积=sinA*b*c/2.
sinA=sqrt(1-cosA*cosA);
cosA根据余弦定理:CosA=(c^2+b^2-a^2)/2bc;
缺点:中间因为浮点型的转换,浮点型相除,开根号,造成误差偏大。
方案三:海伦公式
S=√[p(p-a)(p-b)(p-c)] 而公式里的p为半周长: p=(a+b+c)/2
缺点:在计算中还是存在误差,但是比方案二的方法有所改观。
方案四:叉积
在二维和三维坐标系中,已知三点就可以知道三角形面积。
设a=(a1,b1,c1),b=(a2,b2,c2)(两向量), 则 a×b= | i j k| |a1 b1 c1| |a2 b2 c2| =(b1c2-b2c1,c1a2-a1c2,a1b2-a2b1)=|a|*|b|*sin@(@根据右手定则判断,按逆时针方向转动)(i,j,k为单位向量,此在三维坐标系中)
在二维中,同理更简单一点。
总结:在叉积中,这种算法的效率高,而且可以更好的解决问题。叉积还可以运用在判断三件的顺序上,有空,我再一帖上。因本人不才,目前知道就这几种,如果有新的方法,我会更新这篇文章。