pst-solides3d
其设计背后有一个令人印象深刻的图形引擎。我有兴趣知道如何它能够知道一个物体何时位于另一个物体的后面。
免责声明:我不确定这个问题是否适合特克斯因为我正在尝试深入研究软件包的内部工作原理。如果这是一个不合适的问题或这是错误的论坛,请告诉我,我会删除该问题。
据我所知,此包中的实体首先在虚拟 3D 空间中表示,然后将其投影到 2D(用户定义)投影屏幕上。我认为,正是在此步骤中发生了对象的剪切(或叠加)。
因此,为了简化问题,pst-solides3d
使用什么机制来找出一个物体是否在另一个物体后面(或相交)?
PS:我使用这个标签是package-writing
因为这个问题与编写包有关,但我对编写包不感兴趣,目前也没有时间
答案1
一个表面被分成或多或少的小矩形。对于每个小矩形,您可以构建方向向量。这个 3D 向量的角度和与原点的距离允许对所有矩形进行排序。显示到纸平面内的方向向量标记不可见区域。如果它显示在纸平面外,则标记可见区域。这些区域按从后到前的顺序排序,并以此方式绘制。