如何用c语言画图形?1.每个点p与下一个点p->next构成多边形的一条边,求边长;2.求出两个三等分点q1和q2(求两点构成的线段的距离并进一步求三等分点的方法写成函数,公式不用说了吧);3.按顺序将q1和q2插入p和p->next之间;4.以q1和q2为顶点求向外生长出的三角形的第三个顶点r(求r的坐标比较复杂一些,可以用公式,那么,如何用c语言画图形?一起来了解一下吧。
Turbo C提供了非常丰富的图形函数, 所有图形函数的原型均在graphics. h中, 本节主要介绍图形模式的初始化、独立图形程序的建立、基本图形功能、图形窗口以及图形模式下的文本输出等函数。另外, 使用图形函数时要确保有显示器图形驱动程序*BGI, 同时将集成开发环境Options/Linker中的Graphics lib选为on, 只有这样才能保证正确使用图形函数。由于种类比较多,所以下面仅列举2个例子,抛砖引玉→
1.点
void far putpixel(int x, int y, int color);
2.线
void far line(int x0, int y0, int x1, int y1); 画一条从点(x0, y0)到(x1, y1)的直线。
void far lineto(int x, int y); 画一作从现行游标到点(x, y)的直线。
void far linerel(int dx, int dy); 画一条从现行游标(x, y)到按相对增量确定的点(x+dx, y+dy)的直线。
void far circle(int x, int y, int radius); 以(x, y)为圆心, radius为半径, 画一个圆。
在C语言中绘制五角星的方法主要包括使用控制台图形字符、使用图形库函数以及编写自定义算法。
使用控制台图形字符:
这种方法通过printf函数在控制台的特定位置打印字符,利用循环和条件判断,在控制台上打印星号(*)和空格,从而绘制出一个五角星的图案。这种方法简单直观,但受限于控制台的字符分辨率,图形的精细度有限。
使用图形库函数:
graphics.h库:该库提供了丰富的绘图函数,如line()、circle()等,可以帮助绘制各种形状。通过计算五角星的顶点坐标,然后使用这些函数连接顶点,即可绘制出一个五角星。这种方法适用于需要在图形窗口中绘制复杂图形的场景。
SDL库:SDL是一个跨平台的多媒体库,适用于更复杂的图形应用。使用SDL绘制五角星需要初始化SDL环境,创建窗口和渲染器,然后利用SDL的绘图函数绘制五角星。这种方法虽然相对复杂,但提供了更高的灵活性和跨平台能力。
编写自定义算法:
通过编写自定义算法,如利用数学公式计算五角星的顶点坐标,然后使用图形库函数连接这些顶点来绘制五角星。

新建一个项目、选择win32项目,应用程序为windows程序,附加选项为空;在源代码目录中添加一个后缀为.c的源文件。接下来就可以写C代码了。
用c语言中通过调用windows的api函数,来显示窗口、菜单、滚动条、屏幕输出。
在《windows程序设计》一书中就有一个例子,显示一个标准的windows窗口,并在绘图区显示一个字符串。代码如下:
#include
LRESULTCALLBACKWndProc(HWND,UINT,WPARAM,LPARAM);
intWINAPIWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,PSTRszCmdLine,intiCmdShow)
{
staticTCHARszAppName[]=TEXT("HelloWin");
HWNDhwnd;
MSGmsg;
WNDCLASSwndclass;
wndclass.style=CS_HREDRAW||CS_VREDRAW;
wndclass.lpfnWndProc=WndProc;
wndclass.cbClsExtra=0;
wndclass.cbWndExtra=0;
wndclass.hInstance=hInstance;
wndclass.hIcon=LoadIcon(NULL,IDI_APPLICATION);
wndclass.hCursor=LoadCursor(NULL,IDC_ARROW);
wndclass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
wndclass.lpszMenuName=NULL;
wndclass.lpszClassName=szAppName;
if(!RegisterClass(&wndclass))
{
MessageBox(NULL,TEXT("ThisprogramrequiresWindowsNT!"),szAppName,MB_ICONERROR);
return0;
}
hwnd=CreateWindow(szAppName,
TEXT("TheHelloProgram"),
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
hInstance,
NULL);
ShowWindow(hwnd,iCmdShow);
//UpdateWindow(hwnd);
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
returnmsg.wParam;
}
LRESULTCALLBACKWndProc(HWNDhwnd,UINTmessage,WPARAMwParam,LPARAMlParam)
{
HDChdc;
PAINTSTRUCTps;
RECTrect;
switch(message)
{
caseWM_CREATE:
//PlaySound(TEXT("C:\\WindowsNotify.wav"),NULL,SND_FILENAME|SND_ASYNC);
return0;
caseWM_PAINT:
hdc=BeginPaint(hwnd,&ps);
GetClientRect(hwnd,&rect);
DrawText(hdc,TEXT("Hello,Windows98!"),-1,&rect,DT_SINGLELINE|DT_CENTER|DT_VCENTER);
EndPaint(hwnd,&ps);
return0;
caseWM_DESTROY:
PostQuitMessage(0);
return0;
}
returnDefWindowProc(hwnd,message,wParam,lParam);
}
复制到刚才的.c文件中即可以编译运行。
需要有一个画直线的库函数供使用。以下讲思路。
定义点的类型为具有二维坐标,比如 struct point { double x; double y;} 之类。
定义多边形的类型为元素是点的线性表,比如链表 struct polygon { struct point *p; struct polygon* next; },
需要能按顺序访问各个点,并需要提供insert函数以做插入点操作。
从等边三角形开始,多边形包含起始的三个点,三个点构成等边三角形。
下面的思路是伪代码
p = 起始点head;
do {
1.每个点p与下一个点p->next构成多边形的一条边,求边长;
2.求出两个三等分点q1和q2(求两点构成的线段的距离并进一步求三等分点的方法写成函数,公式不用说了吧);
3.按顺序将q1和q2插入p和p->next之间;
4.以q1和q2为顶点求向外生长出的三角形的第三个顶点r(求r的坐标比较复杂一些,可以用公式,但我认为按q1q2与x轴的夹角分6种情况可以简化计算);
5.将r插入q1和q2之间;
6.p = p->next;
} while (p != 起始点head);
// 每完整循环一次增长一轮,考虑一下要循环几轮满足需要,从图看第二个图是循环3轮。

#include
#include
#define pi 3.1415926
#define MAX_W 50000
main()
{
void sin_curv(int w, int h, int ang);
int w,h,ang;
scanf("%d %d %d",&w,&h,∠);
sin_curv(w,h,ang);
return 0;
}
void sin_curv(int w, int h, int ang)
{
char str[MAX_W];
int s,i,j;
double d;
for(i=0;i { for(s=0;s str[s]=' '; str[0]='|'; str[w]='\0'; if(i==h/2) { for(s=1;s str[s]='-'; } for(j=0;j { d=j*ang/w*pi/180.0; if(i==(int)(h/2-sin(d)*h/2)) str[j]='*'; } puts(str); } } 望采纳 以上就是如何用c语言画图形的全部内容,在C语言中绘制五角星的方法主要包括使用控制台图形字符、使用图形库函数以及编写自定义算法。使用控制台图形字符:这种方法通过printf函数在控制台的特定位置打印字符,利用循环和条件判断,在控制台上打印星号(*)和空格,从而绘制出一个五角星的图案。这种方法简单直观,但受限于控制台的字符分辨率,内容来源于互联网,信息真伪需自行辨别。如有侵权请联系删除。