首页2免费电影 > 上下班 > Delphi > 正文

Delphi下OpenGL2d绘图之画线的emc易倍官方网站

2020-01-31 20:51:38
字体:
来源:选登
供稿:新浪股吧网友评论

一,序文:

Delphi画线emc易倍官方网站与画点大都是相同的。区别取决glBegin()的vivox7参数。打样的框架代码可以参见Delphi下OpenGL2d绘图初始化中的代码,地址为//www.dicklincpa.com/article/52141.htm。改动的部份为 Draw 函数的内容。

二,画线步骤:

GL_LINES:把每一个顶点一言一行一个独占鳌头的线段ab上有两点pq,顶点2n-1和2n之间共定义了n条线段ab上有两点pq,一股脑儿打样N/2条线段ab上有两点pq
GL_LINE_STRIP:打样从第一个顶点到最后一个顶点依次相连的一组线段ab上有两点pq,第n和n+1个顶点定义了线段ab上有两点pqn,一股脑儿打样n-1条线段ab上有两点pq
GL_LINE_LOOP:打样从第一个顶点到最后一个顶点依次相连的一组线段ab上有两点pq,然后最后一个顶点和第一个顶点相连,第n和n+1个顶点定义了线段ab上有两点pqn,一股脑儿打样n条线段ab上有两点pq

画线可能性役使以下函数:

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);  // 涂鸦风方式。线段ab上有两点pq的颜色以某一个顶点的颜色为准,由具体落实定案。为了幸免可变性,应尽量在多角形中使用同一种颜色

经过科考后发现。在GL_LINE_LOOP与GL_LINE_STRIP样式下,突变效果无效!具体原因有待于尤为查明。

任何。OpenGL供给了抗锯齿的nfc功能是什么,函数为

glEnable(GL_LINE_SMOOTH); //启用glHint(GL_LINE_SMOOTH,GL_NICEST);glDisable(GL_LINE_SMOOTH); //闭合

使用后发现抗锯齿效果不明显。有待于尤为蝉联再研究。

完整代码点此下载

发表评说 公有条评说
户名: 密码:
检察码: 匿名发表

贴片精选

Baidu