GDI+基础使用Dome

1 篇文章 0 订阅

定义:Graphic Device Interface 图形设备接口。

环境:C#、VS2017、.NET Windows窗体


过程:

1、创建 Windows窗体 ,框架选择4.6.1的,然后选好位置,已经名称即可。

创建

 2、进入主页,(然后根据图片标记流程执行)

From.cs[设计]

3、进入后台,这里他生成一个方法,由窗体名称+属性名称组成。可以看到,方法的参数其实跟一般的方法还是差不多的,都是这两个参数

(e其实是个假主角,哈哈)

From.cs后台初始

4、写完方法(绘图)

4.1、确定绘画形状:五角星(我用电脑的画图工具简单画了一个,然后标识坐标)

电脑简单画图

4.2、确定了图像,就可以进行代码了(下图全部写出来了)

4.2.1、第一步就是创建画板(在这里画)

Graphics 是GDI+封装的一个绘图图画,不可被继承。他就取自参数e的Graphics。(所以称e为假主角)

他有很多的属性可用,后边会指出

4.2.2、第二步就是创建画笔(用什么画)

Pen 定义用于绘制直线和曲线的对象。 此类也不能被继承。

创建该对象,使用了两个参数,一个是笔颜色,一个是粗细(也有其他创建方式)

4.2.3、接下来应该算是核心地方了

使用Graphics对象,绘制直线/线段(DrawLine),同时还有矩形(DrawRectangle)、椭圆(DrawEllipse)、文字(DrawString)....等等

图片中的五笔,就是我们手画五角星的五条线段,我改进了每画一笔,就跟换笔颜色,更好的了解过程(后边有问题可更好理解)

4.3、结果

4.3.1、从结果看,并没有得出我们理论的样子(五角星倒了)

所以我们是否可以理解为原点坐标是左上角而不是左下角。

5、到这,基本的使用就是这样,类似其他形状,更高级的操作我们就以后再见了~

6、拓展:

6.1、从这里我们是否可以联想到CDA绘图呢

6.2、在绘制五角星的时候时候能够动态的显示绘制每一根线段的过程呢

......

后期再见了!


附上源代码:

//创建画板,这里的画板是由Form提供的.
            Graphics grfc = e.Graphics;
            
            //定义了一个绿色,宽度为的画笔
            Pen pen = new Pen(Color.Green, 2);
            pen = new Pen(Color.Red, 2);
            //pen.Color = Color.Yellow;

            //组件宽高(坐标可根据该属性确定)
            this.Height = 600;
            this.Width = 600;

            //在画板上画直线,起始坐标为(宽, 高),终点坐标为(宽, 高)

            //第一笔
            pen.Color = Color.Red;//红
            grfc.DrawLine(pen, 300, 600, 100, 0 );

            //第二笔
            pen.Color = Color.Yellow;//黄
            grfc.DrawLine(pen, 100, 0, 600 , 350 );

            //第三笔
            pen.Color = Color.BurlyWood;//蓝
            grfc.DrawLine(pen, 600, 350 , 0, 350 );

            //第四笔
            pen.Color = Color.Green;//绿
            grfc.DrawLine(pen, 0, 350 , 500 , 0 );

            //第五笔
            pen.Color = Color.Black;//黑
            grfc.DrawLine(pen, 500, 0 , 300, 600 );

            //绘制文字,起点为160,160;
            grfc.DrawString("Hello, GDI!", new Font("宋体", 28), new SolidBrush(Color.Red), new PointF(200, 240));

我想要你的 点赞、关注、收藏 ~

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
当谈到OpenGL的基础示例时,一个常见的Dome(圆顶)场景是一个不错的选择。以下是一个简单的基础示例,展示了如何使用OpenGL绘制一个简单的圆顶场景: ```cpp #include <GL/glut.h> void display() { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glLoadIdentity(); // 设置相机位置和朝向 gluLookAt(0.0, 0.0, 5.0, // 相机位置 0.0, 0.0, 0.0, // 目标位置 0.0, 1.0, 0.0); // 上方向 // 绘制圆顶 glColor3f(1.0, 1.0, 1.0); // 设置颜色为白色 glutWireSphere(2.0, 20, 20); // 绘制一个半径为2的圆顶 glFlush(); glutSwapBuffers(); } void reshape(int width, int height) { glViewport(0, 0, width, height); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(45.0, (GLfloat)width / (GLfloat)height, 0.1, 100.0); glMatrixMode(GL_MODELVIEW); } int main(int argc, char** argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_DEPTH); glutInitWindowSize(800, 600); glutCreateWindow("OpenGL Dome"); glutDisplayFunc(display); glutReshapeFunc(reshape); glutMainLoop(); return 0; } ``` 在这个示例中,我们使用了OpenGL的固定管线(Fixed Pipeline)来绘制圆顶。首先,我们设置了相机的位置和朝向,然后绘制一个简单的圆顶,使用`glutWireSphere`函数来创建一个具有指定半径和细分级别的球体。 在`main`函数中,我们初始化了OpenGL环境,并创建了一个窗口。然后,我们指定了显示函数`display`和重塑函数`reshape`。在显示函数中,我们清空颜色缓冲区和深度缓冲区,并使用`gluLookAt`函数设置相机视角。然后,我们绘制圆顶,并刷新缓冲区。 编译并运行这个示例程序,你将看到一个简单的圆顶场景。 希望这个基础示例对你有帮助!如果你还有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值