//分析:该图形是由正六边形不停旋转,每次旋转20°得到的,画面上一共有18个正六边形 #include <stdio.h> #include <stdlib.h> #include <math.h> #include "graphics.h" #define PI 3.1415926 static double Newangle = 90.0; static double Initangle = 0.0; //新图形绘制系统 void forward(double distance); /*沿当前方向画线,长度为distance,当distance为负数时后退*/ void turn (double angle); /* 顺时针旋转角度angle,角度单位为DEG,当angle为负数时逆时针旋转*/ void move(double distance); /*沿当前方向移动笔(不画线),长度为distance,当distance为负数时后退*/ void Main() { InitGraphics(); double cx, cy; int i;//对正六边形数目进行计数 cx = GetWindowWidth() / 2; cy = GetWindowHeight() / 2; SetPenColor("green"); for (i = 0; i < 18; i++) { MovePen(cx, cy);//回到原点 forward(1); turn(60); forward(1); turn(60); forward(1); turn(60); forward(1); turn(60); forward(1); Initangle += 20.0; Newangle = Initangle; } } void forward(double distance) { double dx, dy; dx = distance * cos(Newangle * PI / 180); dy = distance * sin(Newangle * PI / 180); DrawLine(dx, dy); } void turn(double angle) { Newangle += angle; } void move(double distance) { double x, y; x = GetCurrentX() + distance * cos(Newangle * PI / 180); y = GetCurrentY() + distance * sin(Newangle * PI / 180); MovePen(x, y); }针对本段项目代码编写一段项目特色
时间: 2024-04-22 10:22:36 浏览: 20
本段项目代码是一个使用C语言和graphics.h库绘制图形的程序。它使用了正六边形不断旋转的方法,每次旋转20°,最终绘制出18个正六边形。在绘制过程中,该程序使用了前进、旋转和移动等基本绘图操作,通过计算角度和距离来实现图形的绘制。该程序的特色在于使用简单的数学计算和基本的图形绘制操作,实现了复杂的图形效果。同时,该程序也展示了C语言和graphics.h库的基本应用,可以作为初学者学习图形编程的参考。
相关问题
svpwm 空间电压矢量仿真(正六边形/圆形
svpwm(空间矢量脉宽调制)是一种用于交流变频器控制中的电力电子调制技术。它通过控制逆变器的输出来实现对交流电机转速的精确调节。
svpwm的基本原理是将三相逆变器输出的电压通过合理的调制方式转换为一个空间矢量,进而控制电机的转速和转矩。正六边形和圆形是常用的两种空间电压矢量仿真方法。
在正六边形空间电压矢量仿真方法中,将六个基本电压矢量按照一定的相位关系进行排列,形成一个正六边形的电压矢量图案。通过改变电压矢量的占空比和频率,可以控制电机的速度和转矩。
在圆形空间电压矢量仿真方法中,将六个基本电压矢量按照一定的相位关系进行排列,形成一个圆形的电压矢量图案。通过改变电压矢量的占空比和频率,同样可以实现对电机的控制。
svpwm空间电压矢量仿真方法在交流电机控制领域应用广泛,具有控制精度高、运行稳定等优点。通过合理地选择正六边形或圆形空间电压矢量仿真方法,可以实现对电机转速和转矩的精确控制,满足不同实际应用的需求。
编写一个程序,输入一个正整数N,在屏幕上用"*"打印以N为边长的正六边形
以下是用 Python 语言编写的程序,可以实现输入一个正整数 N,然后在屏幕上用 "*" 打印以 N 为边长的正六边形:
```
n = int(input("请输入一个正整数N:"))
# 打印正六边形的上半部分
for i in range(n):
# 打印每行前面的空格
for j in range(n - i - 1):
print(" ", end="")
# 打印每行的星号
for j in range(n):
print("* ", end="")
print()
# 打印正六边形的下半部分
for i in range(n - 2, -1, -1):
# 打印每行前面的空格
for j in range(n - i - 1):
print(" ", end="")
# 打印每行的星号
for j in range(n):
print("* ", end="")
print()
```
如果输入的是 5,程序会输出如下的正六边形:
```
* * * * * *
* * * * * * *
* * * * * * * *
* * * * * * * * *
* * * * * * * * * *
* * * * * * * * *
* * * * * * * *
* * * * * * *
* * * * * *
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)