平面与三角形相交判断!
时间:2011-09-14
来源:互联网
一个平面如何判断与一个三角形相交,也就是找出平面切割三角形的点。
作者: vatajoan 发布时间: 2011-09-14
x,y,z平面的简单点,
假设是z=z_plane平面。
假设v0,v1,v2为三角形三个顶点。
v0:(x0,y0,z0)
v1:(x1,y1,z1)
v2:(x2,y2,z2)
假设z0>z_plane,z1,x2<z_plane.
也就是v0在平面内侧,z1,z2在平面外侧(且z1在z2左侧)
求出x,y坐标相对于z的梯度变化
iDXDZ=(x1-x0)/(z1-z0);
iDYDZ=(y1-y0)/(y1-z0);
iXLeft=x0+(z_plane-z0)*iDXDZ;
iYLeft=y0+(z_plane-z0)*iDYDZ;
这样就求出了v0->v1这条线和平面z=z_plane的交点的x,y坐标,z坐标就是z_plane
同理,根据多种情况进行求解。
若不是x,y,z平面就比较困难。但原理相同。
假设是z=z_plane平面。
假设v0,v1,v2为三角形三个顶点。
v0:(x0,y0,z0)
v1:(x1,y1,z1)
v2:(x2,y2,z2)
假设z0>z_plane,z1,x2<z_plane.
也就是v0在平面内侧,z1,z2在平面外侧(且z1在z2左侧)
求出x,y坐标相对于z的梯度变化
iDXDZ=(x1-x0)/(z1-z0);
iDYDZ=(y1-y0)/(y1-z0);
iXLeft=x0+(z_plane-z0)*iDXDZ;
iYLeft=y0+(z_plane-z0)*iDYDZ;
这样就求出了v0->v1这条线和平面z=z_plane的交点的x,y坐标,z坐标就是z_plane
同理,根据多种情况进行求解。
若不是x,y,z平面就比较困难。但原理相同。
作者: xujiezhige 发布时间: 2011-09-14
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28