麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Delphi > 正文

Delphi下OpenGL2d繪圖之畫線的方法

2020-01-31 20:51:38
字體:
來源:轉載
供稿:網友

一、前言:

Delphi畫線方法與畫點基本上是相同的。區別在于glBegin()的參數。繪制的框架代碼可以參考Delphi下OpenGL2d繪圖初始化中的代碼,地址為//m.companysz.com/article/52141.htm。修改的部份為 Draw 函數的內容。

二、畫線步驟:

GL_LINES:把每一個頂點作為一個獨立的線段,頂點2n-1和2n之間共定義了n條線段,總共繪制N/2條線段
GL_LINE_STRIP:繪制從第一個頂點到最后一個頂點依次相連的一組線段,第n和n+1個頂點定義了線段n,總共繪制n-1條線段
GL_LINE_LOOP:繪制從第一個頂點到最后一個頂點依次相連的一組線段,然后最后一個頂點和第一個頂點相連,第n和n+1個頂點定義了線段n,總共繪制n條線段

畫線可能用到以下函數:

glLineWidth() 設置線條寬度
glShadeModel() 設置顏色過渡模式
glColor3f() 設置線條顏色

procedure TForm1.Draw;
begin
  // 清空緩沖區
  glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
  // ----------- GL_LINES -----------
  // 設置線寬
  glLineWidth(5);
  // 兩點間漸變色
  glShadeModel(GL_SMOOTH);
  glBegin(GL_LINES);  // 畫線
  // 設置起點線的顏色
  glColor3f(1, 0, 0);
  // 繪制起點
  glVertex2f(50, 50);
  // 設置末點線的顏色
  glColor3f(0, 0, 1);
  // 繪畫末點
  glVertex2f(200, 200);
  glEnd;
  // 兩點間同顏色
  glShadeModel(GL_FLAT);
  glBegin(GL_LINES);
  glColor3f(0, 1, 0);
  glVertex2f(200, 50);
  glColor3f(1, 1, 0);
  glVertex2f(50, 200);
  glEnd;
  // ----------- GL_LINE_LOOP -----------
  // 三個點閉環形成一個三角形  glShadeModel(GL_SMOOTH); 不起作用
  glLineWidth(1);
  glBegin(GL_LINE_LOOP);
  glColor3f(0, 0, 1);
  glVertex2f(250, 50);
  glVertex2f(250, 200);
  glVertex2f(280, 150);
  glEnd;
  // ----------- GL_LINE_STRIP -----------
  // 多點折線    glShadeModel(GL_SMOOTH); 不起作用
  glLineWidth(1);
  glBegin(GL_LINE_STRIP);
  glColor3f(1, 0, 255);
  glVertex2f(350, 50);
  glVertex2f(400, 200);
  glVertex2f(480, 150);
  glVertex2f(490, 60);
  glEnd;
  SwapBuffers(FDC); //交換雙緩沖區內容,這將把剛繪制的圖形翻印到屏幕上。
end;

可以看到第一個X線條顏色漸變的,OpenGL默認情況下是這種樣式。opengl中提供了一個函數glShadeModel來決定如何處理這種不同顏色的情況。

glShadeModel(GL_SMOOTH); // 平滑方式,這也是opengl的默認處理方式,實現顏色漸變的效果glShadeModel(GL_FLAT);  // 單色方式,線段的顏色以某一個頂點的顏色為準,由具體實現決定。為了避免不確定性,應盡量在多邊形中使用同一種顏色

經過測試后發現,在GL_LINE_LOOP與GL_LINE_STRIP樣式下,漸變效果無效!具體原因有待進一步查明。

另外,OpenGL提供了抗鋸齒的功能,函數為

glEnable(GL_LINE_SMOOTH); //啟用glHint(GL_LINE_SMOOTH,GL_NICEST);glDisable(GL_LINE_SMOOTH); //關閉

使用后發現抗鋸齒效果不明顯。有待進一步繼續再研究。

完整代碼點此下載

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 欧美精品一区二区三区久久久 | 欧美中文字幕一区二区 | 日韩中文字幕三区 | 久久久久久久久久久久久久国产 | www.成人在线 | 国产午夜精品一区二区三区在线观看 | 欧美国产一区二区三区激情无套 | 欧美日韩免费在线观看视频 | 欧美在线观看视频网站 | xxxxhdhdhdhd日本| 黄色网页在线看 | 久久久日韩精品一区二区三区 | 成人免费观看49www在线观看 | 久久久久久久久久久亚洲 | 中文字幕精品一二三四五六七八 | 凹凸成人精品亚洲精品密奴 | 91精品国产91久久久 | 毛片免费试看 | 91麻豆精品国产91久久久无需广告 | 亚洲一区二区三区精品在线观看 | 欧美a一| 激情小说激情电影 | 久久精品2019中文字幕 | 欧美3p激情一区二区三区猛视频 | 国产乱一区二区三区视频 | 亚洲成a| 久久性生活免费视频 | 91网站永久免费看 | 在线a视频| 香蕉国产精品 | 国产亚洲精品综合一区91555 | 免费亚洲视频在线观看 | 在线观看免费毛片视频 | 精品在线观看一区二区 | bt 自拍 另类 综合 欧美 | 免费毛片视频 | 国产一区二区三区视频在线观看 | 日韩黄色片免费看 | 日本视频免费 | 欧美雌雄另类xxxxx | 黄色片网站在线播放 |