【发布时间】:2010-09-23 13:47:46
【问题描述】:
这是一个没有回答的问题的转贴
基本上我正在尝试对具有以下格式的地图进行建模:
每个画笔都定义了一个实体区域。画笔将此区域定义为四个或更多平面的交集。每个平面由三个非共线点定义。这些点必须顺时针方向:
1--2-----------------> | 3 | | | | | ,每个画笔语句如下所示:
{ (128 0 0) (128 1 0) (128 0 1) //平面 1 ( 256 0 0 ) ( 256 0 1 ) ( 256 1 0 ) //平面 2 ( 0 128 0 ) ( 0 128 1 ) ( 1 128 0 ) //平面 3 ( 0 384 0 ) ( 1 384 0 ) ( 0 384 1 ) //平面 4 (0 0 64) (1 0 64) (0 1 64) //平面 5 (0 0 128) (0 1 128) (1 0 128)//平面 6 }当您第一次看到它时,这可能有点令人困惑。它定义了一个从 (128,128,64) 延伸到 (256,384,128) 的矩形区域。以下是单行的含义:
(128 0 0) (128 1 0) (128 0 1) 第 1 点 第 2 点 第 3 点我需要找到平面的交点,因此我只能使用可以在 3d 空间中绘制 2d 面板的方法来绘制形状。 例如,以下代码将在空间中绘制一个三角形:
开始形状(); 顶点(x0,y0,z0); 顶点(x1,y1,z1); 顶点(x2,y2,z2); 顶点(x0,y0,z0); 结束形状();有没有比遍历所有可能的平面相交更好的方法来计算顶点?
【问题讨论】:
-
一些术语:“实体区域”=“体积”,“四个或更多平面的交点”=“由四个或更多平面限制的体积”(两个平面的交点是一条线或什么都没有)。 .."rectangular region" = "rectangular prism"...不是学究气,但这个问题已经够难了;)
-
优雅地接受迂腐