[英]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.