C语言问题 如何根据用户输入的数值(圆心,半径,边框颜色,填充颜色)画圆?

C语言问题 如何根据用户输入的数值(圆心,半径,边框颜色,填充颜色)画圆?
   

你可以使用C语言中的图形库来画圆,比如Windows API或者OpenGL等。这里以Windows API为例,给出一个简单的代码示例


```c
#include <windows.h>

// 定义窗口句柄和设备上下文句柄
HWND g_hWnd = NULL;
HDC g_hDC = NULL;

// 绘制圆形的函数
void DrawCircle(int centerX, int centerY, int radius, COLORREF borderColor, COLORREF fillColor)
{
    // 选中画笔
    HPEN hPen = CreatePen(PS_SOLID, 1, borderColor);
    SelectObject(g_hDC, hPen);

    // 选中画刷
    HBRUSH hBrush = CreateSolidBrush(fillColor);
    SelectObject(g_hDC, hBrush);

    // 绘制圆形
    Ellipse(g_hDC, centerX - radius, centerY - radius, centerX + radius, centerY + radius);

    // 释放画笔和画刷
    DeleteObject(hPen);
    DeleteObject(hBrush);
}

// 窗口过程函数
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    switch (message)
    {
    case WM_PAINT:
    {
        // 绘制圆形
        DrawCircle(200, 200, 100, RGB(255, 0, 0), RGB(0, 255, 0));

        // 结束绘图
        EndPaint(hWnd, NULL);
        break;
    }
    case WM_DESTROY:
    {
        // 关闭设备上下文句柄
        ReleaseDC(hWnd, g_hDC);

        // 结束程序
        PostQuitMessage(0);
        break;
    }
    default:
        return DefWindowProc(hWnd, message, wParam, lParam);
    }

    return 0;
}

// 程序入口函数
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
    // 创建窗口
    WNDCLASS wc = { 0 };
    wc.lpfnWndProc = WndProc;
    wc.hInstance = hInstance;
    wc.hCursor = LoadCursor(NULL, IDC_ARROW);
    wc.lpszClassName = "MyWindowClass";
    RegisterClass(&wc);

    g_hWnd = CreateWindow("MyWindowClass", "My Window", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 640, 480, NULL, NULL, hInstance, NULL);

    // 显示窗口
    ShowWindow(g_hWnd, nCmdShow);
    UpdateWindow(g_hWnd);

    // 创建设备上下文句柄
    g_hDC = GetDC(g_hWnd);

    // 消息循环
    MSG msg;
    while (GetMessage(&msg, NULL, 0, 0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }

    return (int)msg.wParam;
}


```