- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAGE
PAGE #/ 4
已知三角形三点坐标 ,求三角形的面积
先介绍一下三维中的两点之间距离之式,和二维的几乎一样:
d二sqrt((xO-x1)八2+ (y0-y1)A2 + (z0-z1)A2)
再介绍叉乘,中心内容!叉乘在定义上有:
两个向量进行叉乘得到的是一个向量,方向垂直于这两个向量构成的平
面,大小等于这两个向量组成的平行四边形的面积。
在直角座标系[O;i,j,k]中,i、j、k分别为X轴、丫轴、Z轴上向量的单位向
量。
设P0(0,0,0), P1(x1,y1,z1, P2(x2,y2,z2。因为是从原点出发,所以向量
P0P1可简记为P1,向量P0P2可简记为P2。依定义有:
|i j k |
P1X P2 = |x1 y1 z1|
|x2 y2 z2|
展开,得到:
上式 = iy1z2 + jz1x2 + kx1y2 - ky1x2 - jx1z2 - iz1y2
= (y1z2 - y2z1)i + (x2z1 - x1z2)j + (x1y2 - x2y1)k
按规定,有:
单位向量的模为 1。可得叉积的模为:
|P1 x P2| = y1z2- y2z1 + x2z1 - x1z2 + x1y2 - x2y1
= (y1z2 + x2z1 + x1y2) - (y2z1 + x1z2 + x2y1)
开始正式内容。我们设三角形的三个顶点为 A(x0,y0,z0), B(x1,y1,z1),
C(x2,y2,z2。我们将三角形的两条边 AB和AC看成是向量。然后,我们以 A为原
点,进行坐标平移,得到向量 B(x1-x0,y1-y0,z1-z0,) 向量
C(x2-x0,y2-y0,z2-z0。)
①在三维的情况下,直接代入公式,可得向量 B和向量C叉乘结果的模
为:
|B x C| = ((y1-y0)*(z2-z0) + (z1-z0)*(x2-x0) + (x1-x0)*(y2-y0)) -((y2-y0)*(z1-z0) + (z2-z0)*(x1-x0) + (x2-x0)*(y1-y0))| 1 1 1 |
= |x1-x0 y1-y0 z1-z0|
|x2-x0 y2-y0 z2-z0|
它的一半即为所要求的三角形面积 S还有一种比较简单的写法。将向量
AB和AC平移至原点后,设向量 B为(x1,y1,z1),向量C为(x2,y2,z2),则他们的
叉乘所得向量P为(x,y,z),其中:
|y1 z1|
|z1 x1|
|x1 y1|
x = |
| y = |
| z = |
|y2 z2|
|z2 x2|
|x2 y2|
然后用三维中的两点之间距离公式,求出(x,y,z与(0,0,0)的距离,即为向量P 的模,它的一半就是所要求的面积了。
以上公式都很好记:
x 分量由 y, z 分量组成, y 分量由 z, x 分量组成, z 分量由 x, y 分量组 成,恰好是循环的。坐标平移一下就好了。
② 在二维的情况下,我们可以取 z = 0这个平面,即令 z1 = z2 = 0,且 |P1 x P2| = x1y2- x2y1
|x1 y1|
= | |
|x2 y2|
所以:
|B x C| = (x1-x0)*(y2-y0)-(x2-x0)*(y1-y0)
|x1-x0 y1-y0|
= | |
|x2-x0 y2-y0|
它的一半即为所要求的三角形的面积 S。
注意,用行列式求出来的面积是带符号的。如果 A, B, C是按顺时针方向
给出,则S为负;按逆时针方向给出,则 S为正。
以二维的情况为例,三维亦同:
A(0,0) B(0,1) C(1,0) (A B,C按顺时针方向给出)
S = ((x1-x0)*(y2-y0)-(x2-x0)*(y1-y0))/2;
= ((0 - 0)*(0 - 0)-(1 - 0)*(1 - 0))/2
0.5
A(1,0) B(0,1) C(0,0) (A B,C按逆时针方向给出)
S = ((x1-x0)*(y2-y0)-(x2-x0)*(y1-y0))/2;
= ((0 - 1)*(0 - 0)-(0 - 1)*(1 - 0))/2
0.5
如果你不需要符号的话,再求一下绝对值就好了。这样也不用去管给出的 点的顺序了。
以上是利用叉乘。其实还有一招,那就是海伦公式:
利用两点之间距离公式,求出三角形的三边长 a, b, c后,令p =
(a+b+c)/2。
再套入以下公式就可以求出三角形的面积 S :
S = sqrt(p*(p-a)*(p-b)*(p-c))
看起来好像比上面的都要简单?…-:-b各位看客不要打我!
推荐:
在二维的时候使用叉乘公式,三维的时候使用海伦公式 不过如果是
需要符号的情况时,就只能使用行列式的计算
原创力文档


文档评论(0)