Unity怎么将物体重心坐标公式的坐标一直为鼠标的坐标

所碰到的三角形的重心坐标

这尣许你沿着3个轴插值任何顶点数据。

//附加这个脚本到相机它将绘制一条从法线指出的调试直线 //只有当碰到了什么东西,继续 //以防万一確保碰撞器也有一个渲染器、材质和纹理 //取得所碰到三角形的本地法线 //使用碰撞点的重心坐标来插值 //使用重心坐标插值法线 //变换本地法线箌世界空间

1理解三角形的重心坐标(面积坐标)

假如有任意一个三角形ABC,设它的三个顶点为a,b,c三角形内任意一点为p,三角形PBC,PCA,PAB面积之比为λ1:λ2:λ3λ1+λ2+λ3=1则点p与三个顶点a,b,c有以下关系:

以下代码非原创,来源已忘(sorry-_-;)注释为本人所加

2,将平面面积化为百分比权重用以随機选取一个三角形

3,计算一个0至1之间的任意浮点数用以随机选取一个三角形

4,将此浮点数与权重比较选出一个随机三角形

5,计算一个任意的重心坐标Vector3既是三个0-1之间的随机浮点数

6,将重心坐标赋给随机选出的三角形并返回世界坐标


由于mesh.vertices[] 返回的是其相对于网格的相对坐标如果想获取网格上坐标点正确的世界坐标,需加上网格的世界坐标:

所碰到的三角形的重心坐标

这尣许你沿着3个轴插值任何顶点数据。

//附加这个脚本到相机它将绘制一条从法线指出的调试直线 //只有当碰到了什么东西,继续 //以防万一確保碰撞器也有一个渲染器、材质和纹理 //取得所碰到三角形的本地法线 //使用碰撞点的重心坐标来插值 //使用重心坐标插值法线 //变换本地法线箌世界空间

参考资料

 

随机推荐