[英]create 3D rectangle using c#
只需创建自己的。 这里有一些想法:
编辑:
等待。 再想一想:原点、高度、宽度和法线向量不会真正削减它,因为你没有像在 2D 中那样“向上”的感觉。
所以,从头开始。 仔细想想,二维中的宽度和高度实际上是向量二,只是它们的方向是隐含的:宽度是向量在x方向的长度,高度是向量在y方向的长度。
所以,model 你的矩形是这样的:
Origin
)Width
(这在数学中通常称为u
)Height
(这在数学中通常称为v
)Width x Height
的向量积来计算然后可以将矩形的其他三个点计算为:
Origin + Width
Origin + Width + Height
Origin + Height
您链接到的矩形 class 为二维矩形建模(我不知道 3D 矩形是什么,顺便说一句)。
几乎整个System.Drawing
命名空间都处理 2D,因此您不能以这种方式自定义它。
System.Drawing 父命名空间包含支持基本 GDI+ 图形功能的类型。 子命名空间支持高级二维和矢量图形功能、高级成像功能以及与打印相关的印刷服务。
(强调我的)
(关于交集函数)
您不能创建这样的 function。
2D 中 2 个矩形的相交 function 很有趣,因为它返回了第三个矩形(可以是空的)。
空间中 2 个“3D 矩形”的交点并不总是 3D 矩形!
(例如取 2 个相同的矩形并旋转一个,然后取交叉点...)
所以你不能只创建一个矩形 object,然后创建一个交集 function,它返回一个矩形 object。
您需要更完整的 3D object 管理库。
评论:
一个 3D 矩形由 6 个平面分隔。 所以你可以通过 x,y,z 上的 6 个约束来识别它
那么 2 个 3D 矩形的交集将只是一个由 12 个约束标识的 3D object。
如果这 12 个约束可以简化为 6 个,则它可以是矩形(但并非总是如此),如果不能,则它不是矩形。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.