犀牛基礎講解,Rhino中Curve,CurveObject,GH_Curve的區別與聯系

2019-06-27  1302 分類:犀牛資訊

犀牛基礎講解,Rhino中Curve,CurveObject,GH_Curve的區別與聯系

犀牛軟件是我們熟知和應用廣泛的建模軟件,很多人對于rhion軟件都非常感興趣,其中有不少知識點及相關基礎常識需要犀牛新人去學習,下面品索就為大家帶來犀牛基礎講解,Rhino中Curve,CurveObject,GH_Curve的區別與聯系,為大家盤點一下三者的區別與聯系,讓你不在混淆,迷糊。

之所以選擇此三者,是因為Point太簡單,而Surface物件又太過復雜,剩下不表。當然通過此三者,你可以進而推廣到其他地方。最好的資料莫過于SDK。

Rhino.Geometry.Curve

a5fd7652.png

1.是對Curve這個類的的描述,從中我們我們可以看到其中一個重要參數為t。

2.Curve類所在的命名空間

3.RhinoCommon.ll的版本號,主版本號為5。

77372d02.png

1.特性,在一定程度上表示Curve的實體是可以序列化,即寫入文檔文件。

2.Curve類繼承自GeometryBase類,這樣Curve類就繼承GeometryBase的一些方法和屬性

7d1110dc.png

1.Rhino.Geometry.Curve的繼承關系,表明ArcCurve、CurveProxy、LineCurve、NurbsCurve、PolyCurve、PolyLineCurve是Curve的子類,他們之間存在一定的轉換方式。

構造方法Constructor

71855b70.png

1.受保護的方法,我們不可以調用,但是可以再類的內部調用,之所以有這樣的受保護的方法,可能是因為你單獨調用它是無意義的甚至危險的,而我們通過靜態方法在類的內部進行調用的話,這樣可以完成一系列的賦值操作,使這個實例具有幾何意義上的屬性。

2、受保護的方法,通過反序列化將數據流轉化為Curve實例,它受保護的原因也許僅僅是因為他太難了,我猜的。

84313_th.png

1.帶小鑰匙,受保護的方法,只能在類的內部調用,但是可以通過繼承,在子類的內部調用

2.可以調用的實例方法

3.靜態方法,通過Curve直接調用,里面在一定程度上調用了Curve()這個受保護的構造方法,多半用于返回一個Curve類實例。

屬性Properties

43575_th.png

屬性,我們可以直接通過 . 運算符直接獲取的的實例字段。從中我們可以看到描述Curve類的重要屬性,基本上都是幾何意義上的描述,階數、維度、區間、是否閉合的、是否是周期曲線、曲線的起點、曲線的終點等。

如何區別Curve,CurveObject,GH_Curve的區別與不同,答案是屬性和方法。至于CurveObject,GH_Curve的類描述,繼承關系、構造方法、實例方法、靜態方法可以通過上述步驟一探究竟,所以不再贅述。

Curve,CurveObject的屬性對比

46094_th.png

我們先通過屬性來了解CurveObject,它存在一個Document的屬性,返回一個RhinoDoc的實例,即物體所在的文檔,進而可以猜想到我們在Rhino這個軟件界面中看到的物件就是CurveObject,而不是Curve,

f96a9_th.png

而他的另外一個CurveGeometry的屬性,返回一個Curve的實例,CurveObject實例通過內部的字段,字段類型為Curve,存儲了最為基本的幾何數據。如果我們想直接操作文檔中的CurveObject的幾何特征,我們需要通過調整CurveGeometry的屬性進而調整CurveObject。

IsHideen,IsLocked,IsDeleted,Visible是不是很熟悉,這基本上都是rhino界面操作的一些基本命令。

當然如果你不寫rhino插件的話,基本上不會接觸CurveObject,我們大部分操作的都是Curve這種幾何源數據。

7ee42_th.png

接下來我們通過物件描述,以及CurveObject的Attribute來進一步了解文檔中物件。我們在幾何圖形部分看到Curve類的大部分屬性。而其他的一些東西則屬于CurveObject。CurveObject的另外一個重要屬性為Attribute.里面包含了渲染材質,圖層等一系列的屬于文檔物件的特有屬性。里面包含東西過多沒辦法一一列舉。

42d09_th.png

GH_Curve

GH_Curve的幾何屬性存儲于字段m_value中。

所以盡量不要調用grasshopper的電池,這樣的話會涉及大量的數據轉換,Curve轉為GH_Curve,GH_Curve轉化為Curve。

f376f_th.png

那么知道這些有什么用,如果涉及幾何建模,那么從Curve方向查找,如果涉及材質,圖層等物件屬性的話,從CurveObject方向查找,比如想查相機,文字,圖層等,那么應該在Rhino.DocObject的命名空間中找。至于GH_Curve,還是把它放在一邊。

廢話頗多,總結下來,Curve是存儲幾何數據的,CurveObject是在Rhino中可以看見的物件,而GH_Curve是在Grasshopper中可以看見的物件。也算是對框架的一個介紹吧。

最后放個相機小代碼

來源:CPF/大水牛數字設計聯盟

猜你喜歡

南京好运麻将正版 大众麻将单机版 千喜3d试机号和开 微豪配资 股票配资平台哪个好推荐九梦财富 期货配资规则 配资业务员如何找客户 15选5 快3稳赚公式 极速十一选五走势图 股票配资门户k连旺润股票配资 股票配资平台哪个安全a贵丰配资 上证指数由什么决定 美国股票指数道琼斯 高手只炒一只股票19年钒价2019年为何大跌 股票融资如何操作 基金配资