第乙個平行四邊形

2021-05-21 17:54:47 字數 1238 閱讀 9471

昨天下午畫出第乙個d3d下的三角形,二個小時候畫出第乙個平行四邊形。雖然粗糙點,但還算有點成績,哈哈。

繪製前需要掌握的一些知識。

一、頂點(vertex):d3d中的乙個座標點。座標點由(x,y,z)三個座標值來定位。

二、fvf(flexible vertex format):自由頂點格式,也有資料叫靈活頂點格式。反正都查不多。意思就是根據自己的需要,自己來定義乙個記錄頂點資訊的結構體。

注:雖然自己能做了,但是對這個東西確實有點是是而非的理解。d3d憑什麼能從乙個記憶體區域中識別我的格式定義?ok,setfvf的引數中已經指定了結構體中包含的有哪些字段,但是欄位的順序呢?我宣告了 d3dfvf_xyzrhw 標記,但是如果我的結構體定義的字段是a,b,c,rhw怎麼辦,或者我不按順序,弄個x,rhw,z,y,他也可以正確識別嗎?就我現在那點c++基礎,還是不去深究這個問題了,不過早晚會有一天,我要把這個問題挖出個根出來的。

三、頂點緩衝(vertex buffer):據說有2種緩衝,不過暫時接觸的就這一鐘了,其實就是用來儲存乙個頂點結構體的陣列。為了定義並使用這個頂點緩衝,需要由至少3個函式配合使用,依次如下:

1.createvertexbuffer:建立乙個頂點緩衝區

2.setstreamsource:繫結乙個頂點緩衝區到指定的著色暫存器內。乙個directd3ddrive可以最多擁有16個著色暫存器;

3.setfvf:設定d3d著色暫存器中頂點資料的格式。

四、繪製操作。貌似很多d3d的繪製都這個叫 drawprimitive 的函式,函式的第乙個引數是乙個列舉值,分別如下:

d3dpt_pointlist

點列表:將一連串的頂點作為畫素進行繪製

d3dpt_linelist

線列表:彼此孤立(彼此沒有發生連線)的一些直線

d3dpt_linestrip

線帶:一連串連線的直線。每條直線都是從前乙個頂點到當前頂點繪製而成,很像連線點

d3dpt_********list

三角形列表:索引區每隔三個乙個三角形。

d3dpt_********strip

三角形帶:索引區中每三個乙個三角形,前乙個三角形的後兩個頂點和後乙個三角形的前兩個頂點重合。即繪製的第乙個三邊形使用3個頂點,後面繪製的每乙個三角形只使用乙個額外的頂點。

d3dpt_********fan

三角扇形:索引區中第乙個點為公共頂點,後面依次展開,每兩個點和公共定點組成三角形。

d3dpt_force_dword

還不清楚幹什麼用。

平行四邊形

請小夥伴們對自己ac的題目進行標記,注意每人只能標記一次!不知道的不要標記,惡意標記者將 賬號!時間限制 3 sec 記憶體限制 128 mb 提交 狀態 題目描述 求平面上n個點構成的平行四邊形個數。輸入 一行乙個數n。接下來n行,每行兩個數x,y,表示這個點的座標為 x,y 保證任意兩點不重合,...

平行四邊形邊數

在乙個平面內給定n個點,任意三個點不在同一條直線上,用這些點可以構成多少個平行四邊形?乙個點可以同時屬於多個平行四邊形。input 多組資料 10 處理到eof。每組資料第一行乙個整數n 4 n 500 接下來n行每行兩個整數xi,yi 0 xi,yi 1e9 表示每個點的座標。output 每組資...

平行四邊形數

c 平行四邊形數 time limit 2000ms memory limit 32768kb 64bit io format i64d i64u fzu 2231 description 在乙個平面內給定n個點,任意三個點不在同一條直線上,用這些點可以構成多少個平行四邊形?乙個點可以同時屬於多個平...