在C语言中,可以使用GDI(Graphics Device Interface)或GDI+来绘制矢量图形。以下是一个使用GDI+绘制简单图形的示例代码:
```c
include include include pragma comment (lib, "gdiplus.lib") int main() { Gdiplus::GdiplusStartupInput gdiplusStartupInput; ULONG_PTR gdiplusToken; Gdiplus::GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL); Gdiplus::Graphics graphics(GetDC(NULL)); // 设置画笔和画刷 Gdiplus::Pen pen(Gdiplus::Color(255, 0, 0), 5); Gdiplus::SolidBrush brush(Gdiplus::Color(0, 255, 0)); // 绘制矩形 Gdiplus::Rectangle rectangle(10, 10, 200, 200); graphics.DrawRectangle(&pen, &rectangle); // 绘制椭圆 Gdiplus::Ellipse ellipse(100, 100, 100, 50); graphics.DrawEllipse(&pen, &ellipse); // 释放GDI+资源 Gdiplus::GdiplusShutdown(gdiplusToken); ReleaseDC(NULL, GetDC(NULL)); return 0; } ``` 在这个示例中,我们首先初始化GDI+,然后创建一个`Graphics`对象来绘制图形。我们使用`Pen`和`SolidBrush`来设置画笔和画刷,并分别绘制一个矩形和一个椭圆。最后,我们释放GDI+资源。 如果你需要将绘制的图形保存为文件,可以使用GDI+的`Metafile`类。以下是一个将绘制的图形保存为WMF文件的示例代码: ```c include include include pragma comment (lib, "gdiplus.lib") int main() { Gdiplus::GdiplusStartupInput gdiplusStartupInput; ULONG_PTR gdiplusToken; Gdiplus::GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL); Gdiplus::Graphics graphics(GetDC(NULL)); // 设置画笔和画刷 Gdiplus::Pen pen(Gdiplus::Color(255, 0, 0), 5); Gdiplus::SolidBrush brush(Gdiplus::Color(0, 255, 0)); // 绘制矩形 Gdiplus::Rectangle rectangle(10, 10, 200, 200); graphics.DrawRectangle(&pen, &rectangle); // 绘制椭圆 Gdiplus::Ellipse ellipse(100, 100, 100, 50); graphics.DrawEllipse(&pen, &ellipse); // 创建Metafile对象 Gdiplus::Metafile metafile(L"output.wmf", graphics.GetDeviceContext()); graphics.SetMetafile(&metafile); // 绘制图形 graphics.DrawRectangle(&pen, &rectangle); graphics.DrawEllipse(&pen, &ellipse); // 释放GDI+资源 metafile.Close(); Gdiplus::GdiplusShutdown(gdiplusToken); ReleaseDC(NULL, GetDC(NULL)); return 0; } ``` 在这个示例中,我们创建一个`Metafile`对象,并将其与`Graphics`对象关联。然后,我们在`Metafile`对象上绘制图形,最后关闭`Metafile`对象并释放GDI+资源。 这些示例代码展示了如何在C语言中使用GDI+绘制简单的矢量图形。你可以根据需要修改代码以绘制更复杂的图形。