3次Bezier曲線,曲面和3次B樣條曲線和曲面

2021-06-16 01:58:21 字數 934 閱讀 8555

問題:

昨天剛忙完圖形學的程式設計作業,題目是自擬,聽老師說他要重點考這個自由曲線,曲面,特地把作業定位了這個,好熟悉熟悉,據說成程老師的課考試非常的難呀。鬱悶。

解答:先自由曲線的含義和概念。基本上我的理解就是根據控制的形值點,來生成一些類的點,然後用直線來連線這些點,連線後形成的曲線會逼近你用的型值點所畫的多邊形。三次bezier曲線需要四個形值點,這裡我在做bezier曲線的時候參照了nehe教程的例子,不得不說nehe裡面的**真的寫的非常優化,尤其是在生成bezier曲面的時候,人家並不是像教科書那樣按照u,v方向來畫的,而是直接在遍歷u方向的時候,求v方向的曲線的點,對於求出來的點,直接畫三角帶,這樣繪製的畫,在空間你會看見三條曲線,而不是書上說的那樣的u,v方向上的網格。然後我有參照這個把b樣條曲線和b樣條曲面的也畫了出來。

關於bezier曲線,b樣條曲線和曲面的生成原理,我就不贅述了,這裡主要想說的是自己在編寫的時候遇到的諸多問題:

1:就是把nehe裡面的point點結構體,我移植和封裝成了乙個類,這麼簡單的操作,卻出了諸多問題,歸根揭底就是這個程式不是我設計的,所以類的裡面就膚淺了,同時一些建構函式也沒加上,所以遇到了麻煩。

2:對opengl裡面的重新整理函式理解的不清楚,尤其是呼叫了鍵盤訊息,改變了介面的影象的時候,卻發現呼叫ondraw()就不對了,雖然問題是解決了,但是這個道理還不是很明白。

3:就是有空看看鍵盤訊息,一直以來就會用onchar函式,而且這個函式好像不能相應"vk_up"這些虛擬鍵的訊息,只能相應一些ascii碼鍵的訊息,這個問題應該的搞清楚才行。

基本的程式設計經驗總結就這樣了,以後還得多了解vc裡面的訊息傳遞機制,這樣才能剛好的寫程式,同時這陣子一直做的是那些應用數學公式生出點,線面,或者應用公式分析影象,語言,對圖形和多**程式設計也有了一點點感悟。感覺上這方面其實對數學的要求還是比較高的,而且數值的型別很重要,比如double ,int  而且對矩陣的操作很多,應該多看看這方面的書才好呀。

bezier曲線和bezier曲面

如果想理解貝塞爾曲面沒有對其數學基本的認識是很難的,如果你不願意讀這一部分或者你已經知道了關於她的數學知識你可以跳過。首先我會描述貝塞爾曲線再介紹生成貝塞爾曲面。奇怪的是,如果你用過乙個圖形程式,你就已經熟悉了貝塞爾曲線,也許你接觸的是另外的名稱。它們是畫曲線的最基本的方法,而且通常被表示成一系列點...

三次曲線和五次曲線函式

三次曲線規劃函式 x0,x1分別為規劃起始位置和終止時刻位置,v0,v1分別為規劃起始速度和終止時刻速度 t為規劃時長,t為求解時刻 function y triple x0,x1,v0,v1,t,t a 2 x0 2 x1 v0 t v1 t t 3 b 3 x0 3 x1 2 v0 t v1 t...

3次握手和4次揮手

客戶端通過向伺服器端傳送乙個syn來建立乙個主動開啟,作為三路握手的一部分。客戶端把這段連線的序號設定為隨機數 a。伺服器端應當為乙個合法的syn回送乙個syn ack。ack 的確認碼應為 a 1,syn ack 包本身又有乙個隨機序號 b。最後,客戶端再傳送乙個ack。當服務端受到這個ack的時...