C++ easyX小程序:画五角星

news/2024/7/20 2:55:20 标签: c++, 小程序

       //本小程序通过调用easyX的moveto、lineto函数画出五角星编写了FiveStar函数,在调用这个函数时setbkcolor、setlinecolor、setfillcolor设置了背景、线及填充颜色,又调用floodfill函数对五角星进行颜色填充。
//代码及注释如下:
#include<iostream>
#include<graphics.h>
#include<math.h>
using namespace std;
void FiveStar(int x,int y,int R) //绘图函数
{   
  //(x,y)五角星圆心坐标
  //R--五角星外接圆半径
    //计算五角星各外角顶点坐标
    int x1=x+R*cos(3.1415*(90+0*72)/180);
    int y1=y-R*sin(3.1415*(90+0*72)/180);
    int x2=x+R*cos(3.1415*(90+1*72)/180);
    int y2=y-R*sin(3.1415*(90+1*72)/180);
    int x3=x+R*cos(3.1415*(90+2*72)/180);
    int y3=y-R*sin(3.1415*(90+2*72)/180);
    int x4=x+R*cos(3.1415*(90+3*72)/180);
    int y4=y-R*sin(3.1415*(90+3*72)/180);
    int x5=x+R*cos(3.1415*(90+4*72)/180);
    int y5=y-R*sin(3.1415*(90+4*72)/180);
    //计算五角星内角内接圆半径
    int r=(int)R*0.44; 
    //计算五角星各内角顶点坐标
    int xx1=x+r*cos(3.1415*(90+0*72+36)/180);
    int yy1=y-r*sin(3.1415*(90+0*72+36)/180);
    int xx2=x+r*cos(3.1415*(90+1*72+36)/180);
    int yy2=y-r*sin(3.1415*(90+1*72+36)/180);
    int xx3=x+r*cos(3.1415*(90+2*72+36)/180);
    int yy3=y-r*sin(3.1415*(90+2*72+36)/180);
    int xx4=x+r*cos(3.1415*(90+3*72+36)/180);
    int yy4=y-r*sin(3.1415*(90+3*72+36)/180);
    int xx5=x+r*cos(3.1415*(90+4*72+36)/180);
    int yy5=y-(int)r*sin(3.1415*(90+4*72+36)/180);
    //画五角星
    moveto(x1, y1);
    lineto(xx1, yy1);
    lineto(x2, y2);
    lineto(xx2, yy2);
    lineto(x3, y3);
    lineto(xx3,yy3);
    lineto(x4, y4);
    lineto(xx4,yy4);
    lineto(x5, y5);
    lineto(xx5,yy5);
    lineto(x1, y1);
}
int main()
{
    initgraph(640,480); //初始化窗口
    setbkcolor(YELLOW); //背景黄色
    cleardevice();  //清屏
    setlinecolor(RED); //线颜色红色
    FiveStar(300,220,150); //调用绘图函数
    setfillcolor(RED); //填充色红色
    floodfill(300,220,RED,0); //用红色填充
    system("pause");
    return 0;
}


http://www.niftyadmin.cn/n/5354939.html

相关文章

C++核心编程:文件操作 笔记

5.文件操作 程序运行时产生的数据都属于临时数据&#xff0c;程序一旦允许结束都会被释放。通过文件可以将数据持久化 C中对文件操作需要包含头文件<fstream> 文件类型分为两种&#xff1a; 文本文件 - 文件以文本的ASCII码形式存储在计算机中二进制文件 - 文件以文本…

扩展学习|统计学习理论(SLT)与极限学习机(ELM)应用于大社会数据分析

文献来源&#xff1a;[1] Oneto L , Bisio F , Cambria E ,et al.Statistical Learning Theory and ELM for Big Social Data Analysis[J].IEEE Computational Intelligence Magazine, 2016, 11(3):45-55.DOI:10.1109/MCI.2016.2572540. 提取链接&#xff1a;链接&#xff1a;h…

iOS 集成 Flutter Module

集成步骤 # Flutter flutter_application_path ./flutter_module_test/ load File.join(flutter_application_path, .ios, Flutter, podhelper.rb)target IntegrateFlutter douse_frameworks!# Flutterinstall_all_flutter_pods(flutter_application_path)end在主项目根目录下…

通过Nacos权重配置,实现微服务金丝雀发布效果(不停机部署)

在微服务项目迭代的过程中&#xff0c;不可避免需要上线&#xff1b;上线对应着部署&#xff0c;或者升级部署&#xff1b;部署对应着修改,修改则意味着风险。 传统的部署都需要先停止旧系统&#xff0c;然后部署新系统&#xff0c;之后需要对新系统进行全面的功能测试&#xf…

java常量和kotlin常量

在java中使用final声明常量在kotlin中使用const val声明常量 常量在编译为字节码后会直接把调用常量的地方直接替换为常量值&#xff0c;示例如下&#xff1a; public class ConstDemo {public static final String NAME "Even";private static final int ID 100…

JUC并发编程-四大函数式接口、Stream 流式计算、ForkJoin并行执行任务

12. 四大函数式接口 新时代的程序员&#xff1a;lambda表达式、链式编程、函数式接口、Stream流式计算 函数式接口&#xff1a;只有一个方法的接口&#xff0c;可以有一些默认的方法 如&#xff1a;Runnable接口函数 1&#xff09;Function 函数型接口 public class Functio…

【数据结构】(二)线性表List

目录 1、基本概念 2、栈&#xff08;Stack&#xff09; 3、队列&#xff08;Queue&#xff09; 4、串&#xff08;String&#xff09; 1、基本概念 &#xff08;1&#xff09;线性表是零或多个数据元素的有限序列。 &#xff08;2&#xff09;数组长度指存储空间长度&…

Android 12.0 监听手机飞行模式

1. 判断当前手机飞行模式是否开启 /*** * param context* return true:飞行模式开启; false:飞行模式关闭*/ public boolean airplaneMode(Context context) {return (Settings.Global.getInt(context.getContentResolver(), Settings.Global.AIRPLANE_MODE_ON, 0) 1);}2. 接…