函數(shù)名: circle 功 能: 在給定半徑以(x, y)為圓心畫圓 用 法: void far circle(int x, int y, int radius); 程序例: #include graphics.h #include stdlib.h #include stdio.h #include conio.h int main(void) { /* request auto detection */ int gdriver = DETECT, gmode, errorcode; int midx, midy; int radius = 100; /* initialize graphics and local variables */ initgraph(gdriver, gmode, ""); /* read result of initialization */ errorcode = graphresult(); if (errorcode != grOk) /* an error occurred */ { printf("Graphics error: %s\n", grapherrormsg(errorcode)); printf("Press any key to halt:"); getch(); exit(1); /* terminate with an error code */ } midx = getmaxx() / 2; midy = getmaxy() / 2; setcolor(getmaxcolor()); /* draw the circle */ circle(midx, midy, radius); /* clean up */ getch(); closegraph(); return 0; }
太谷ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為成都創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!
如果你用 wintc 或者可以用 graphic.h編程的話
void circ(int x,int y,int r,int c)
{
int i,ty,tx;
for(i=x;i=x+r;++i)
{
ty=sqrt(pow(r,2)-pow((i-x),2))+y;
putpixel(i,ty,(i+ty)%c);
putpixel(i,2*y-ty,(i+ty)%c);
putpixel(2*x-i,ty,(i+ty)%c);
putpixel(2*x-i,2*y-ty,(i+ty)%c);
}
for(i=y;i=y+r;++i)
{
tx=sqrt(pow(r,2)-pow((i-y),2))+x;
putpixel(tx,i,(tx+i)%c);
putpixel(tx,2*y-i,(tx+i)%c);
putpixel(2*x-tx,i,(tx+i)%c);
putpixel(2*x-tx,2*y-i,(tx+i)%c);
}
}
四個變量分別是圓心坐標(biāo) xy,半徑,顏色
原理是先畫四分之一個圓,然后用左右上下對稱畫全
tx=sqrt(pow(r,2)-pow((i-y),2))+x; 也就是圓標(biāo)準(zhǔn)方程的變形
附上一個畫圓的程序 wintc1.91圖形模板編寫的
/* WIN-TC BGI 圖形編程模板 */
#include "Conio.h"
#include "graphics.h"
#include"stdlib.h"
#include"time.h"
#include"math.h"
#define closegr closegraph
void initgr(void) /* BGI初始化 */
{
int gd = DETECT, gm = 0; /* 和gd = VGA,gm = VGAHI是同樣效果 */
registerbgidriver(EGAVGA_driver);/* 注冊BGI驅(qū)動后可以不需要.BGI文件的支持運行 */
initgraph(gd, gm, "");
}
int main(void)
{
int i,k,x,y,rr;
void circ(int,int,int,int) ;
int pr();
initgr(); /* BGI初始化 */
srand(time(NULL));
for(k=0;k50;++k)
{
rr=rand()%150+50;
x=(rand()%2)*2-1;
y=(rand()%2)*2-1;
for(i=1;i600;++i)
circ(320+rr*x,240+rr*y,i,k+2);
}
getch(); /* 暫停一下,看看前面繪圖代碼的運行結(jié)果 */
closegr(); /* 恢復(fù)TEXT屏幕模式 */
return 0;
}
int pr()
{
static int m=2;
if(m=9) m=2;
return m++;
}
void circ(int x,int y,int r,int c)
{
int i,ty,tx;
for(i=x;i=x+r;++i)
{
ty=sqrt(pow(r,2)-pow((i-x),2))+y;
putpixel(i,ty,(i+ty)%c);
putpixel(i,2*y-ty,(i+ty)%c);
putpixel(2*x-i,ty,(i+ty)%c);
putpixel(2*x-i,2*y-ty,(i+ty)%c);
}
for(i=y;i=y+r;++i)
{
tx=sqrt(pow(r,2)-pow((i-y),2))+x;
putpixel(tx,i,(tx+i)%c);
putpixel(tx,2*y-i,(tx+i)%c);
putpixel(2*x-tx,i,(tx+i)%c);
putpixel(2*x-tx,2*y-i,(tx+i)%c);
}
}
這個啊??茨氵@樣的星號沒有什么規(guī)律,很難用調(diào)用循環(huán)的思路來實現(xiàn)。建議直接用“printf”輸出函數(shù)實現(xiàn)星號的輸出。你懂我的意思吧?
這個函數(shù)在前面加了個*號,代表返回值是指針類型,參數(shù)是字符串,返回值是字符的函數(shù)指針。調(diào)用它的時候就可以用他的指針來調(diào)用。在main函數(shù)中可以這樣做:
char (*pt)(char*);
char a[] ="ashjkl";
pt = strlwr;
var = (*pt)(a);
C語言是一門通用計算機(jī)編程語言,應(yīng)用廣泛。C語言的設(shè)計目標(biāo)是提供一種能以簡易的方式編譯、處理低級存儲器、產(chǎn)生少量的機(jī)器碼以及不需要任何運行環(huán)境支持便能運行的編程語言。
C語言輸出如題所示圖案的代碼如下:
#includestdio.h
int main( )
{
int x;
int i,j,k;
printf("請輸入,需要生成圖案的行數(shù)(單數(shù)):");
scanf("%d",x);
k=x/2+1;
for(i=1;i=k;i++)
{
for(j=0;j2*i-1;j++)
printf("*");
printf("\n");
}
for(i=k-1;i=1;i--)
{
for(j=0;j2*i-1;j++)
printf("*");
printf("\n");
}
}
擴(kuò)展資料:
由題,需要輸出這樣一個圖像,可將其看為一個正三角形與倒三角形的組合。
且對于下圖:
*
***
*****
*******
*****
***
*
由行數(shù)與*號的關(guān)系可得,在對于總行數(shù)/2+1的部分,行數(shù)*2+1,即為*號的數(shù)目,因而得到了前半段圖形的代碼。
而對于后半部分的倒三角形,其行數(shù)可記為,倒數(shù)總行數(shù)/2...3、2、1行,則可利用循環(huán)以及2*行數(shù)-1,得到下半部分的圖像。
#include math.h
#include graphics.h /*預(yù)定義庫函數(shù)*/
void circlePoint(int x,int y) /*八分法畫圓程序*/
{
circle(320+x*20,240+y*20,3);
circle(320+y*20,240+x*20,3);
circle(320-y*20,240+x*20,3);
circle(320-x*20,240+y*20,3);
circle(320-x*20,240+y*20,3);
circle(320-x*20,240-y*20,3);
circle(320-y*20,240-x*20,3);
circle(320+y*20,240-x*20,3);
circle(320+x*20,240-y*20,3);
}
void MidBresenhamcircle(int r) /* 中點Bresenham算法畫圓的程序 */
{
int x,y,d;
x=0;y=r;d=1-r; /* 計算初始值 */
while(xy)
{ circlePoint(x,y); /* 繪制點(x,y)及其在八分圓中的另外7個對稱點 */
if(d0) d+=2*x+3; /* 根據(jù)誤差項d的判斷,決定非最大位移方向上是走還是不走 */
else
{ d+=2*(x-y)+5;
y--;
}
x++;
delay(900000);
} /* while */
}
main()
{
int i,j,r,graphmode,graphdriver;
detectgraph(graphdriver,graphmode);
initgraph(graphdriver,graphmode," ");
printf("中點Bresenhamcircle算法畫圓的程序\n"); /*提示信息*/
printf("注意 |r|=11");
printf("\n輸入半徑值 r:");
scanf("%d",r);
printf("按任意鍵顯示圖形...");
getch();
cleardevice();
setbkcolor(BLACK);
for(i=20;i=620;i+=20) /*使用雙循環(huán)畫點函數(shù)畫出表格中的縱坐標(biāo)*/
for(j=20;j=460;j++)
putpixel(i,j,2);
for(j=20;j=460;j+=20) n歡迎光臨學(xué)網(wǎng),收藏本篇文章 [1] [2]
$False$
bsp; /*使用雙循環(huán)畫點函數(shù)畫出表格中的橫坐標(biāo)*/
for(i=20;i=620;i++)
putpixel(i,j,2);
outtextxy(320,245,"0"); /*原點坐標(biāo)*/
outtextxy(320-5*20,245,"-5");circle(320-5*20,240,2); /*橫坐標(biāo)值*/
outtextxy(320+5*20,245,"5");circle(320+5*20,240,2);
outtextxy(320-10*20,245,"-10");circle(320-10*20,240,2);
outtextxy(320+10*20,245,"10");circle(320+10*20,240,2);
outtextxy(320-15*20,245,"-15");circle(320-15*20,240,2);
outtextxy(320+15*20,245,"15");circle(320+15*20,240,2);
outtextxy(320,240-5*20,"-5");circle(320,240-5*20,2); /*縱坐標(biāo)值*/
outtextxy(320,240+5*20,"5");circle(320,240+5*20,2);
outtextxy(320,240-10*20,"-10");circle(320,240-10*20,2);
outtextxy(320,240+10*20,"10");circle(320,240+10*20,2);
outtextxy(20,10,"The center of the circle is (0,0) "); /*坐標(biāo)軸左上角顯示提示信息*/
setcolor(RED); /*標(biāo)記坐標(biāo)軸*/
line(20,240,620,240); outtextxy(320+15*20,230,"X");
line(320,20,320,460); outtextxy(330,20,"Y");
setcolor(YELLOW);
MidBresenhamcircle(r);
setcolor(BLUE); /*繪制圓*/
circle(320,240,r*20);
setcolor(2);
getch();
closegraph();
}
文章名稱:c語言畫圓星號函數(shù) c語言星星符號的代碼
路徑分享:http://chinadenli.net/article20/dodcpjo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、網(wǎng)站內(nèi)鏈、虛擬主機(jī)、外貿(mào)網(wǎng)站建設(shè)、做網(wǎng)站、網(wǎng)站營銷
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)