📜  在C++图形中绘制一条由直线分成两个彩色部分的椭圆(1)

📅  最后修改于: 2023-12-03 15:37:34.966000             🧑  作者: Mango

在C++图形中绘制一条由直线分成两个彩色部分的椭圆

简介

在 C++ 图形中,可以使用 graphics.h 头文件中提供的函数来绘制图形。本文将介绍如何绘制一条由直线分成两个彩色部分的椭圆。

程序分析
  • 引入头文件 graphics.h

    #include <graphics.h>
    
  • 初始化图形环境。

    initgraph(width, height); // 初始化绘图窗口
    
  • 绘制椭圆。

    setcolor(color1); // 设置颜色为 color1
    setfillstyle(SOLID_FILL, color1); // 设置填充颜色为 color1
    fillellipse(x, y, rx, ry); // 绘制椭圆,并填充为 color1
    
    setcolor(color2); // 设置颜色为 color2
    setfillstyle(SOLID_FILL, color2); // 设置填充颜色为 color2
    fillellipse(x, y, rx - w, ry - h); // 绘制内部椭圆,并填充为 color2
    
  • 绘制直线。

    setlinestyle(SOLID_LINE, thickness, 0); // 设置线型为实线
    setcolor(color); // 设置颜色为 color
    line(x - w, y, x + w, y); // 绘制横线
    
代码实现

完整代码如下,可使用 Dev-C++ 等集成开发环境直接运行。

#include <graphics.h>

int main()
{
    int width = 640, height = 480; // 设定绘图窗口大小
    int x = width / 2, y = height / 2; // 设定绘图中心点坐标
    int rx = 150, ry = 100; // 设定椭圆长轴、短轴半径
    int w = 60, h = 40; // 设定内部椭圆长轴、短轴半径
    int thickness = 5; // 设定直线粗细
    int color1 = YELLOW, color2 = BLUE, color = RED; // 设定颜色

    initgraph(width, height); // 初始化绘图窗口

    setcolor(color1); // 设置颜色为 color1
    setfillstyle(SOLID_FILL, color1); // 设置填充颜色为 color1
    fillellipse(x, y, rx, ry); // 绘制椭圆,并填充为 color1

    setcolor(color2); // 设置颜色为 color2
    setfillstyle(SOLID_FILL, color2); // 设置填充颜色为 color2
    fillellipse(x, y, rx - w, ry - h); // 绘制内部椭圆,并填充为 color2

    setlinestyle(SOLID_LINE, thickness, 0); // 设置线型为实线
    setcolor(color); // 设置颜色为 color
    line(x - w, y, x + w, y); // 绘制横线

    getch(); // 等待按键
    closegraph(); // 关闭绘图窗口

    return 0;
}
运行结果

绘制的椭圆如下图所示。

椭圆图形