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;
}
```