導航:首頁 > 編程語言 > 2d編程技巧

2d編程技巧

發布時間:2023-02-15 01:25:29

㈠ UG編程怎麼進行2D編程

1、進入UG2D加工模塊,採用2D外形線加工功能。

㈡ Quartz 2D編程指南 (四) —— Paths路徑(一)

路徑定義一個或多個形狀或子路徑。 子路徑可以包含直線,曲線或兩者。 它可以是開放的或封閉的。 子路徑可以是簡單的形狀,例如線,圓,矩形或星形,或者更復雜的形狀,例如山脈的輪廓或抽象塗鴉。 圖3-1顯示了您可以創建的一些路徑。 直線(圖中左上角)是虛線;線條也可以是實心的。 彎曲的路徑(在中間的頂部)由幾條曲線組成,是一條開放的路徑。 同心圓被填充,但沒有被描邊。 加利福尼亞州是一條封閉的道路,由許多曲線和線條組成,路徑既有描邊也有填充。 星星說明了填充路徑的兩個選項,您將在本章後面閱讀這些選項。

在本章中,您將了解構成路徑的構建塊,如何描邊和繪制路徑以及影響路徑外觀的參數。

路徑創建和路徑繪制是單獨的任務。 首先,您創建一個路徑。 如果要渲染路徑,請求 Quartz 繪制它。 如圖3-1所示,您可以選擇描邊路徑,填充路徑,或者描邊和填充路徑。 您還可以使用路徑來約束路徑邊界內其他對象的繪制,實際上是創建剪切區域。

圖3-2顯示了已繪制的路徑,其中包含兩個子路徑。 左邊的子路徑是一個矩形,右邊的子路徑是由直線和曲線組成的抽象形狀。 每個子路徑都被填充並且其輪廓被描邊。

圖3-3顯示了獨立繪制的多條路徑。 每條路徑都包含一條隨機生成的曲線,其中一些曲線已填充,另一些曲線則被描邊。繪圖通過裁剪區域約束到圓形區域。

子路徑由線,弧和曲線構成。 Quartz還提供了便捷功能,可通過單個函數調用添加矩形和橢圓。 點也是路徑的基本構建塊,因為點定義了形狀的起始和結束位置。

點是x和y坐標,用於指定用戶空間中的位置。 您可以調用函數 CGContextMoveToPoint 來指定新子路徑的起始位置。 Quartz跟蹤當前點,這是用於路徑構建的最後位置。 例如,如果調用函數 CGContextMoveToPoint 將位置設置為(10,10),則會將當前點移動到(10,10)。 如果然後繪制一條長50個單位的水平線,則該線上的最後一個點(60,10)將成為當前點。 始終從當前點開始繪制直線,圓弧和曲線。

大多數情況下,通過向Quartz函數傳遞兩個浮點值來指定一個點來指定x和y坐標。 某些函數要求您傳遞 CGPoint 數據結構,該結構包含兩個浮點值。

一條線由其端點定義。 它的起始點始終假定為當前點,因此在創建線時,只指定其端點。 使用函數 CGContextAddLineToPoint 將單行線附加到子路徑。

您可以通過調用函數 CGContextAddLines 將一系列連接的線添加到路徑中。 您將此函數傳遞給一系列點。 第一點必須是第一行的起點,剩下的點是端點。 Quartz在第一個點開始一個新的子路徑,並將一個直線段連接到每個端點。

弧是圓弧段。 Quartz提供了兩個創建弧的函數。 函數 CGContextAddArc 從圓創建一個彎曲的段。 您可以指定圓的中心,半徑和徑向角(以弧度表示)。 您可以通過指定 2 pi 的徑向角度來創建整圓。 圖3-4顯示了獨立繪制的多條路徑。 每條路徑包含一個隨機生成的圓;有些被填滿,有些被描邊。

當您想要對矩形的角進行圓角時, CGContextAddArcToPoint 函數是理想的選擇。 Quartz使用您提供的端點來創建兩條切線。 您還提供了Quartz切割圓弧的圓的半徑。 弧的中心點是兩個半徑的交點,每個半徑垂直於兩條切線中的一條。 弧的每個端點都是其中一條切線上的切點,如圖3-5所示。 圓圈的紅色部分實際上是繪制的。

如果當前路徑已包含子路徑,則Quartz會將當前點的直線段附加到弧的起始點。 如果當前路徑為空,Quartz會在弧的起始點創建一個新的子路徑,並且不會添加初始直線段。

二次和三次Bézier曲線是代數曲線,可以指定任意數量的有趣曲線形狀。 通過將多項式公式應用於起點和終點以及一個或多個控制點來計算這些曲線上的點。 以這種方式定義的形狀是矢量圖形的基礎。 公式比位數組更緊湊更容易存儲,並且具有可以在任何解析度下重新創建曲線的優點。

圖3-6顯示了通過獨立繪制多個路徑創建的各種曲線。 每條路徑包含一條隨機生成的曲線;有些被填滿,有些被描邊。

在許多數學文本和描述計算機圖形的在線資源中討論了產生二次和三次Bézier曲線的多項式公式,以及如何從公式生成曲線的細節。 這里不討論這些細節。

使用 CGContextAddCurveToPoint 函數,使用您指定的控制點和端點,從當前點追加三次貝塞爾曲線。 圖3-7顯示了由圖中所示的當前點,控制點和端點產生的三次Bézier曲線。 兩個控制點的放置決定了曲線的幾何形狀。 如果控制點都在起點和終點之上,則曲線向上拱起。 如果控制點都低於起點和終點,則曲線向下拱起。

您可以通過調用 CGContextAddQuadCurveToPoint 函數並指定控制點和端點,從當前點追加二次Bézier曲線。 圖3-8顯示了使用相同端點但控制點不同的兩條曲線。 控制點確定曲線拱起的方向。 由於二次曲線僅使用一個控制點,因此不可能使用二次貝塞爾曲線創建盡任意多的有趣形狀。 例如,無法使用單個控制點創建交叉。

要關閉當前子路徑,應用程序應調用 CGContextClosePath 。 此函數添加從當前點到子路徑起點的線段,並關閉子路徑。 以子路徑起點結束的直線,圓弧和曲線實際上不會關閉子路徑。 您必須顯式調用 CGContextClosePath 才能關閉子路徑。

一些Quartz函數將路徑的子路徑視為應用程序關閉它們。 這些命令將每個子路徑視為您的應用程序調用 CGContextClosePath 來關閉它,隱式地將一個線段添加到子路徑的起始點。

關閉子路徑後,如果應用程序進行額外調用以向路徑添加直線,圓弧或曲線,Quartz將從剛剛關閉的子路徑的起點開始一個新的子路徑。

橢圓本質上是一個壓扁的圓圈。 您可以通過定義兩個焦點來創建一個焦點,然後繪制位於一定距離的所有點,以便將橢圓上任意點到一個焦點的距離加上到從該點到另一個焦點的距離這個和始終是相同的值。 圖3-9顯示了獨立繪制的多條路徑。 每條路徑包含一個隨機生成的橢圓;有些被填滿,有些被描邊。

您可以通過調用函數 CGContextAddEllipseInRect 將橢圓添加到當前路徑。 您提供了一個定義橢圓邊界的矩形。 Quartz使用一系列Bézier曲線近似橢圓。 橢圓的中心是矩形的中心。 如果矩形的寬度和高度相等(即正方形),則橢圓為圓形,半徑等於矩形寬度(或高度)的一半。 如果矩形的寬度和高度不相等,則它們定義橢圓的長軸和短軸。

添加到路徑的橢圓以移動操作開始,以關閉子路徑操作結束,所有移動都以順時針方向定向。

您可以通過調用函數 CGContextAddRect 將矩形添加到當前路徑。 您提供了一個CGRect結構體,其中包含矩形的原點及其寬度和高度。

添加到路徑的矩形以移動操作開始,以關閉子路徑操作結束,所有移動都以逆時針方向定向。

您可以通過調用 CGContextAddRects 函數並提供CGRect結構數組,將許多矩形添加到當前路徑。 圖3-10顯示了獨立繪制的多條路徑。 每個路徑包含一個隨機生成的矩形;有些被填滿,有些被描邊。

如果要在圖形上下文中構造路徑,可以通過調用函數 CGContextBeginPath 來發出 Quartz 信號。接下來,通過調用函數 CGContextMoveToPoint ,在路徑中設置第一個形狀或子路徑的起點。建立第一個點後,可以在路徑中添加直線,圓弧和曲線,請記住以下內容:

繪制路徑後,將從圖形上下文中刷新它。您可能不希望如此輕易地丟失路徑,特別是如果它描繪了您想要反復使用的復雜場景。因此,Quartz提供了兩種用於創建可重用路徑的數據類型- CGPathRef 和 CGMutablePathRef 。您可以調用函數 CGPathCreateMutable 來創建可變的 CGPath 對象,您可以在其中添加直線,圓弧,曲線和矩形。 Quartz提供了一組CGPath函數,這些函數與 The Building Blocks 中討論的函數並行。路徑函數在 CGPath 對象上運行,而不是在圖形上下文上運行。這些函數是:

有關路徑函數的完整列表,請參閱 Quartz 2D Reference Collection 。

如果要將路徑附加到圖形上下文,請調用函數 CGContextAddPath 。路徑保留在圖形上下文中,直到 Quartz 繪制它。您可以通過調用 CGContextAddPath 再次添加路徑。

㈢ 2D游戲編程需要什麼軟體

你可以先去【繪學霸】網站找「游戲設計/游戲製作」板塊的【免費】視頻教程-【點擊進入】完整入門到精通視頻教程列表: www.huixueba.net/web/AppWebClient/AllCourseAndResourcePage?type=1&tagid=307&zdhhr-11y04r-418365887

想要系統的學習可以考慮報一個網路直播課,推薦CGWANG的網路課。老師講得細,上完還可以回看,還有同類型錄播課可以免費學(贈送終身VIP)。

自製能力相對較弱的話,建議還是去好點的培訓機構,實力和規模在國內排名前幾的大機構,推薦行業龍頭:王氏教育。
王氏教育全國直營校區面授課程試聽【復制後面鏈接在瀏覽器也可打開】: www.huixueba.com.cn/school/3dmodel?type=2&zdhhr-11y04r-418365887

在「游戲設計/游戲製作」領域的培訓機構里,【王氏教育】是國內的老大,且沒有加盟分校,都是總部直營的連鎖校區。跟很多其它同類型大機構不一樣的是:王氏教育每個校區都是實體面授,老師是手把手教,而且有專門的班主任從早盯到晚,爆肝式的學習模式,提升會很快,特別適合基礎差的學生。

大家可以先把【繪學霸】APP下載到自己手機,方便碎片時間學習——繪學霸APP下載: www.huixueba.com.cn/Scripts/download.html

閱讀全文

與2d編程技巧相關的資料

熱點內容
查看dns地址命令 瀏覽:765
android錄屏工具 瀏覽:838
成都互動直播系統源碼 瀏覽:953
usb藍牙android 瀏覽:405
伺服器顯示error1什麼意思 瀏覽:708
python代碼精簡 瀏覽:457
文件加密了怎麼找到了 瀏覽:193
jellyfin插件怎麼選擇主伺服器 瀏覽:836
asp用戶注冊源碼 瀏覽:48
什麼是照片壓縮文件 瀏覽:392
java調用js代碼 瀏覽:979
崑山市民app怎麼修改身份信息 瀏覽:779
php登陸次數 瀏覽:744
python字元轉成數字 瀏覽:822
海川用的是什麼伺服器 瀏覽:376
口才是練出來的pdf 瀏覽:458
雲伺服器哪個公司性價比高 瀏覽:517
源碼論壇打包 瀏覽:558
php怎麼做成word 瀏覽:692
python批量生成密鑰 瀏覽:492