问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

老师布置的作业,在vs2008下,用c#语言,opengl技术画一面五星红旗,求高手帮忙啊

发布网友 发布时间:2022-08-16 03:32

我来回答

4个回答

热心网友 时间:2023-09-28 08:08

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using CsGL.OpenGL;

namespace mySecondExample
{
public partial class OGLview : OpenGLControl
{
public OGLview()
{
InitializeComponent();
}

protected override void InitGLContext()
{
base.InitGLContext();

GL.glClearColor(1.0f, 0.0f, 0.0f, 0.0f); // 设置OpenGl视图空间的背景色为黑色
GL.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);// Clear Screen And Depth Buffer
GL.glMatrixMode(GL.GL_PROJECTION); // 将变换矩阵模式设为投影变换
GL.glLoadIdentity(); // 加载投影变换单位矩阵重置视景体
// 用正射投影设置一个边长为20个单位的立方体兴视景体
GL.glOrtho(-1.0, 1.0, -1, 1.0, 0, 20);
//TODO: 可添加其他初始化动作
}

protected override void OnSizeChanged(EventArgs e)
{
try
{
base.OnSizeChanged(e);
}
catch (Exception)
{
}
// 设置视口尺寸与视图类控件的尺寸相同
GL.glViewport(0, 0, this.Size.Width, this.Size.Height);
GL.glMatrixMode(GL.GL_MODELVIEW); // 设置当前为模型视图矩阵
GL.glLoadIdentity(); // 重置模型视图矩阵
}

public override void glDraw()
{
GL.glClearColor(1.0f, 0.0f, 0.0f, 0.0f); // 设置OpenGl视图空间的背景色为黑色
GL.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);// Clear Screen And Depth Buffer

GL.glColor3f(1.0f, 1f, 0.0f);
/* draw two redish triangles - at upper-right corner */
GL.glBegin(GL.GL_TRIANGLES);
GL.glVertex2f(0f, 0.1f);
GL.glVertex2f(-0.035f, 0.05f);
GL.glVertex2f(0.035f, 0.05f);

GL.glVertex2f(0.035f, 0.05f);
GL.glVertex2f(-0.1f, 0.05f);
GL.glVertex2f(-0.05f, 0f);

GL.glVertex2f(0.035f, 0.05f);
GL.glVertex2f(-0.05f, 0f);
GL.glVertex2f(0.05f, 0f);

GL.glVertex2f(0.05f, 0f);
GL.glVertex2f(0.035f, 0.05f);
GL.glVertex2f(0.1f, 0.05f);

GL.glVertex2f(0.05f, 0f);
GL.glVertex2f(0.07f, -0.07f);
GL.glVertex2f(0f, -0.0f);

GL.glVertex2f(-0.05f, 0f);
GL.glVertex2f(-0.07f, -0.07f);
GL.glVertex2f(0f, 0f);
GL.glEnd();

}

}
}
这是一个五角星 你可以运行试一下
如果合适 那就采纳把 记得分儿~

热心网友 时间:2023-09-28 08:09

你不会是西邮的孩子吧

热心网友 时间:2023-09-28 08:09

不知道啊追问你真好玩,打击我啊

热心网友 时间:2023-09-28 08:10

界面上有个Form1 我没实现那么多,只实现了 把Form1变成五角星,并且可以移动,
双击五角星 退出程序~~~~~~
关键代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace 可移动的五角形
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private Point MousePos; // 记录鼠标指针的坐标
private bool bMouseDown = false;//记录鼠标是否按下

private void Form1_Paint(object sender, PaintEventArgs e)
{
GraphicsPath myGraphicsPath = new GraphicsPath(); //实例化五角形的线
//定义五个 点数组
Point[] myPoint = {
new Point(130,100),
new Point(300,000),
new Point(470,100),
new Point(400,300),
new Point(200,300),
};
myGraphicsPath.AddPolygon(myPoint); //绘制五角形
this.Region = new Region(myGraphicsPath);//控件关联的窗口区域
}

private void Form1_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
MousePos.X = -e.X - SystemInformation.FrameBorderSize.Width;
MousePos.Y = -e.Y - SystemInformation.CaptionHeight - SystemInformation.FrameBorderSize.Height;
bMouseDown = true;
}
}

private void Form1_MouseMove(object sender, MouseEventArgs e)
{
if (bMouseDown)
{
Point CurrentPos = Control.MousePosition;
CurrentPos.Offset(MousePos.X,MousePos.Y);
Location = CurrentPos;
}
}

private void Form1_DoubleClick(object sender, EventArgs e)
{
this.Close();
this.Dispose();
}

}
}

合适就采纳把~~~~追问您好,能留个QQ吗,我加你详细问问

追答QQ : 1656081482

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
干货| 如何利用PPT绘制手绘图像(内含视频教学)。 小米Mix2s开发者选项的设置与应用指南(探索小米Mix2s开发者选项)_百度... 我今年41岁女,我想问一买哪种养老保险更合算,可以一次买吗?要多少... 我们家有营业执照。我现在41岁了。养老保险如何来买?一年,交多少钱? 搅拌桩的两喷两搅怎么理解 ...上关于一喷二搅、二喷二搅、二喷三搅、二喷四搅的具体做法 两搅两喷与四搅四喷的区别 三轴搅拌桩两搅四喷是什么意思 梦幻西游将军令怎么解绑 EXCEL表,求值? 如何用opengl实现五角星的滚动和放缩 我想用opengl画一个五角星,为什么执行后只出现呢一个黑框“请按任意键继续”,然后就什么都没有了呀!? OPENGL绘图 用一个循环语句画出五角星 2021年2月23日十二属相运势,李居明2021生肖运势运程 钟应堂十二生肖运势2022年,2020年十二生肖运程 2021年2月4日属相运势,2021年十二生肖运势运程 臭豆腐卤水如何避免腐败生蛆 历史文献怎么查 史料和文献在哪儿找? 中国近现代史的历史文献在哪里找到比较真实? 80年代的文献怎么检索 怎么找档案文献的具体日期 财政管理体制的中心组成部分是? 空调分流管 空调分液器直接用铜管焊接用可以吗 空调换热器的分液头必须竖直吗? 谁知道从西安到邯郸要多少钱? 邯郸到西安自驾游多少小时 为什么叫藏书羊肉 搏动造句 用OpenGL绘制国旗出现了一点问题 把文字编成密码 根与系数的关系是怎样的? 中年男人身高1.75米,体重66公斤,怎样增加体重 2022年12生肖运势详解,2022年是什么生肖? 公务员考非全日制研究生 四川正宗泡椒凤爪做法 泡椒凤爪制作步骤 内裤一个晚上不洗就烂了是什么原因? 内裤放着几天没洗为什么会破 为何换掉的内裤未洗第二天看就有破洞了 穿的内裤换下来、没有洗、等第二天洗就坏了为什么 内裤隔夜洗就裤裆烂是怎么回事 内裤里布老无缘无故烂是怎么回事?早上都是好的,晚上回家就烂了好大块,好几条内裤都是这样,怎么回事 为什么内裤会自己破掉? 请问工伤一次性伤残补助金怎么发放,是发放本人工资的百份之六十吗 一级工伤,伤残津贴:社平工资乘以百分之六十乘以百之九十对吗? 工伤赔偿时 本人平均月缴费工资如果低于统筹地区职工平均工资的60%是按60%算吗? 工伤停工留薪期工资低于社平工资的60%,怎样算 2009年全国各省市中考试题汇编英语45套答案 打水泥墙深70厘米直径40厘米孔需买什么样的电动工具