给定环境的体素化和具有顶点A,B和C的三角形,确定三角形"占据"或居住的哪些体素的最佳方法是什么?换句话说,我怎样才能枚举三角形的任何部分所在的所有体素?
我有一个项目,它拍摄地形图,并使其成为一个3D对象.当我绘制对象的3D矩形时,它的工作速度非常慢.我读过关于BSP树的内容,但我并不是很了解它.有人可以解释如何在3D中使用BSP(也许举个例子)?以及如何在我的情况下使用它,当地图中的某些山峰覆盖其他部分时,我需要组织矩形以便很好地绘制它们?
我在3D空间的某个地方有一条线和一个三角形.换句话说,我有三个点([x,y,z]每个)三角形,和两个点(也是[x,y,z])的线.
我需要找出一种方法,希望使用C++来确定线是否曾经过三角形.与三角形平行且具有多个共同点的线应计为"不相交".
我已经制作了一些代码,但它不起作用,即使视觉表现清楚地显示了交叉点,我也总是假的.
ofVec3f P1, P2;
P1 = ray.s;
P2 = ray.s + ray.t;
ofVec3f p1, p2, p3;
p1 = face.getVertex(0);
p2 = face.getVertex(1);
p3 = face.getVertex(2);
ofVec3f v1 = p1 - p2;
ofVec3f v2 = p3 - p2;
float a, b, c, d;
a = v1.y * v2.z - v1.z * v2.y;
b = -(v1.x * v2.z - v1.z * v2.x);
c = v1.x * v2.y - v1.y * v2.x;
d = -(a * p1.x + b * p1.y …Run Code Online (Sandbox Code Playgroud) 如何从指定的数字返回三角形列表?
例:
>>> myList = triangle(3)
[0,0,0]
[1,1]
[2]
>>> myList
[[0,0,0], [1,1], [2]]
Run Code Online (Sandbox Code Playgroud)