Advertisement

五角星的VC++绘图方法(图形学作业)

  •  5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:None


简介:
本作业详细介绍了使用VC++编程环境绘制五角星的方法,包括几何原理、代码实现和调试技巧,是学习计算机图形学的基础实践。 在图形学作业中使用VC++绘制五角星的代码如下: ```cpp void CHuayuView::OnDraw(CDC* pDC) { CHuayuDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // 画五角星 int X0=100, Y0=100, R=80; float a[6][3], b[6][3]; float xr; float pi = 3.14; a[1][1] = X0; a[1][2] = Y0 + R; // 计算五角星的顶点 for (int i=2; i<6; ++i) { float angle = pi * 3.5 / 10 - (i-2)*pi/5; a[i][1] = X0 + R*sin(angle); a[i][2] = Y0 + R*cos(angle); } // 计算五角星的中间点 xr = (a[2][2]-Y0)/cos(pi / 5); b[1][1]=X0-sin(pi/5)*xr; b[1][2] = a[2][2]; for(int i=2; i<6; ++i) { float angle = pi * 3.5 / 10 - (i-4)*pi/2.5; b[i][1]=X0+sin(angle)*xr; b[i][2] = Y0-cos(angle)*xr; } // 连接顶点和中间点 pDC->MoveTo(a[5][1], a[5][2]); for(int i=1; i<6; ++i) { pDC->LineTo(b[i][1], b[i][2]); pDC->LineTo(a[i][1], a[i][2]); } // 连接顶点形成五角星 pDC->MoveTo(a[1][1], a[1][2]); for(int i=0; i<5; ++i) { int next = (i+4)%5; pDC->LineTo(b[next+1][1], b[next+1][2]); pDC->MoveTo(a[(next+1)][1], a[(next+1)][2]); } // 计算填充区域的中心点 int c[5][2]; for(int i=0; i<5; ++i) { c[i][0]=(a[i+1][1]+b[i+1][1]+X0)/3; c[i][1]=(a[i+1][2]+b[i+1][2]+Y0)/3; } int d[5][2]; for(int i=0; i<5; ++i) { d[i][0] = (a[i + 1][1] + b[(i + 2)%6][1] + X0) / 3; d[i][1] = (a[i + 1][2] + b[(i + 2)%6][2] + Y0) / 3; } // 设置填充颜色 CBrush brush; brush.CreateSolidBrush(RGB(0,255,0)); pDC->SelectObject(&brush); for(int i=0; i<5; ++i){ pDC->ExtFloodFill(c[i][0],c[i][1],RGB(0,0,0),FLOODFILLBORDER); Sleep(40); } CBrush brush2; brush2.CreateSolidBrush(RGB(222, 111, 222)); pDC->SelectObject(&brush2); for(int i=0; i<5; ++i){ pDC->ExtFloodFill(d[i][0],d[i][1],RGB(0,0,0),FLOODFILLBORDER); Sleep(40); } } ``` 这段代码将绘制一个五角星,并以两种不同的颜色填充其内部区域。

全部评论 (0)

还没有任何评论哟~
客服
客服
  • VC++
    优质
    本作业详细介绍了使用VC++编程环境绘制五角星的方法,包括几何原理、代码实现和调试技巧,是学习计算机图形学的基础实践。 在图形学作业中使用VC++绘制五角星的代码如下: ```cpp void CHuayuView::OnDraw(CDC* pDC) { CHuayuDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // 画五角星 int X0=100, Y0=100, R=80; float a[6][3], b[6][3]; float xr; float pi = 3.14; a[1][1] = X0; a[1][2] = Y0 + R; // 计算五角星的顶点 for (int i=2; i<6; ++i) { float angle = pi * 3.5 / 10 - (i-2)*pi/5; a[i][1] = X0 + R*sin(angle); a[i][2] = Y0 + R*cos(angle); } // 计算五角星的中间点 xr = (a[2][2]-Y0)/cos(pi / 5); b[1][1]=X0-sin(pi/5)*xr; b[1][2] = a[2][2]; for(int i=2; i<6; ++i) { float angle = pi * 3.5 / 10 - (i-4)*pi/2.5; b[i][1]=X0+sin(angle)*xr; b[i][2] = Y0-cos(angle)*xr; } // 连接顶点和中间点 pDC->MoveTo(a[5][1], a[5][2]); for(int i=1; i<6; ++i) { pDC->LineTo(b[i][1], b[i][2]); pDC->LineTo(a[i][1], a[i][2]); } // 连接顶点形成五角星 pDC->MoveTo(a[1][1], a[1][2]); for(int i=0; i<5; ++i) { int next = (i+4)%5; pDC->LineTo(b[next+1][1], b[next+1][2]); pDC->MoveTo(a[(next+1)][1], a[(next+1)][2]); } // 计算填充区域的中心点 int c[5][2]; for(int i=0; i<5; ++i) { c[i][0]=(a[i+1][1]+b[i+1][1]+X0)/3; c[i][1]=(a[i+1][2]+b[i+1][2]+Y0)/3; } int d[5][2]; for(int i=0; i<5; ++i) { d[i][0] = (a[i + 1][1] + b[(i + 2)%6][1] + X0) / 3; d[i][1] = (a[i + 1][2] + b[(i + 2)%6][2] + Y0) / 3; } // 设置填充颜色 CBrush brush; brush.CreateSolidBrush(RGB(0,255,0)); pDC->SelectObject(&brush); for(int i=0; i<5; ++i){ pDC->ExtFloodFill(c[i][0],c[i][1],RGB(0,0,0),FLOODFILLBORDER); Sleep(40); } CBrush brush2; brush2.CreateSolidBrush(RGB(222, 111, 222)); pDC->SelectObject(&brush2); for(int i=0; i<5; ++i){ pDC->ExtFloodFill(d[i][0],d[i][1],RGB(0,0,0),FLOODFILLBORDER); Sleep(40); } } ``` 这段代码将绘制一个五角星,并以两种不同的颜色填充其内部区域。
  • 示例
    优质
    本教程提供了一个详细的步骤指南,用于使用基本的几何原理和数学方法来手绘或计算机绘制五角星。通过学习角度、长度计算及点的定位技巧,读者能够掌握创建对称且精确的五角星的方法。适合所有级别的图形设计爱好者与学生参考实践。 这是计算机图形学中的一个简单示例程序,用于绘制五角星。使用该程序时,请在空白处点击并耐心等待五角星完成绘制。仅供参考,希望不要见笑。
  • Python_Turtle_制_海龟__圆和示例
    优质
    本教程通过Python内置库Turtle,介绍如何简单绘制基本几何图形,包括圆形与五角星,适合编程入门者学习。 Python Turtle 是一个内置的图形库,它以一种有趣的方式引入编程初学者到图形绘制的世界。Turtle 模块提供了一个简单的接口,用户可以通过控制虚拟的“海龟”在屏幕上移动并绘制线条来创建各种复杂的图形。 在这个示例中,我们将深入探讨如何使用 Python 的 Turtle 库画圆和五角星。首先,在 Python 环境中导入 Turtle: ```python import turtle ``` 接下来,你可以通过以下方式创建一个名为 `t` 的海龟对象,并开始绘制线条: ```python t = turtle.Turtle() ``` 移动海龟的基本方法是使用 `forward()` 和 `left()`, 或者 `right()` 函数。例如,下面的代码会让海龟向前移动 100 像素并左转90度。 ```python t.forward(100) t.left(90) ``` Turtle 库提供了一个方便的方法来画圆:`circle()`. 这个函数接受半径作为参数,例如: ```python t.circle(50) ``` 你可以使用 `color()` 和 `pensize()` 函数改变线条的颜色和宽度。比如,设置颜色为红色且线宽为3: ```python t.color(red) t.pensize(3) ``` 接下来我们看看如何用 Turtle 绘制五角星。一个完整的五角星由五个等边三角形构成,每个转角度数是72度(因为 360/5 = 72)。下面的代码实现了一个绘制五角星的方法: ```python def draw_star(size): for _ in range(5): t.forward(size) t.right(144) # 转向角度为360-72 draw_star(100) ``` 为了使五角星旋转,可以使用 `turtle.clone()` 创建一个新的海龟对象,并在每次绘制一个完整的五角星后让原海龟转过72度: ```python start_turtle = turtle.Turtle() start_turtle.color(yellow) for _ in range(5): draw_star(100) start_turtle.right(72) ``` 通过结合这些基本操作,你可以创造出各种有趣的图案和动画。Turtle 是一个强大的教学工具,可以帮助学习者理解编程概念,并提供直观的视觉反馈。 总结一下,Python 的 Turtle 模块允许我们控制“海龟”对象进行图形绘制。使用 `forward()`, `left()`, `right()`, `circle()`, `color()` 和 `pensize()` 等函数可以画出圆、五角星等复杂图形。这个示例展示了如何利用这些功能,为初学者提供了很好的起点,在实践中不断试验和创新会使 Turtle 成为你编程工具箱中的一个有趣且有用的资源。
  • MFC示例代码
    优质
    本示例展示如何使用Microsoft Foundation Classes (MFC)在Windows应用程序中绘制一个五角星。通过简单的图形函数实现,适用于学习和理解基本的MFC绘图技术。 本例程内容是用MFC绘制五角星,程序使用Visual2008编译。如果使用其他编译器,请查看textView.cpp文件中的代码。
  • 使用VC++ MFC制彩色
    优质
    本教程详细介绍如何运用VC++和MFC框架编程技术,在Windows平台上实现动态绘制美观的彩色五角星图形。 使用VC++ MFC的绘图控件类绘制彩色五角星,并提供可以直接运行的代码。
  • 使用VC++和扫描线算
    优质
    本项目运用VC++编程环境及扫描线填充算法实现五角星图形的精确绘制与填充,展示几何图形处理技术的应用。 用扫描线算法绘制填充的五角星,在VC++6.0中实现。
  • 用Logo语言和海龟制圆及正
    优质
    本教程介绍如何使用Logo编程语言及其经典“海龟绘图”功能来创建基本图形,包括圆形和正五角星,适合初学者入门学习。 LOGO语言又称作海龟语言,由操作者通过一行命令来控制一个三角形的海 turtle 移动,海龟的移动轨迹可以形成各种图案。使用一行语句操纵海龟完成以下显示的图形:最外围是一个实心圆,圆里面有一个实心正五角星,五角星的中心还有一个虚线圆。图形大小和位置随意,并提供该行命令。 代码中可能存在一些不足之处,请大家谅解。这只是一个抛砖引玉的例子。
  • 坐标系、四叶草、
    优质
    本教程将指导您如何在坐标系中绘制精美的图案,包括五角星、四叶草和星芒。通过学习基本数学函数与几何原理,轻松掌握绘制技巧,为您的设计增添艺术感。 在Picture控件中建立笛卡尔坐标系时,可以使用五角星、四叶草或星芒形状来展示数据点,使图表更加生动有趣。这种方法已经经过测试并证明是可行的。所有的设置都可以保存在一个TXT文本段落件里。