當前位置:首頁 » 編程語言 » c語言中求圖形
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言中求圖形

發布時間: 2022-08-02 08:25:08

c語言編程輸出圖形

這應該是一個二重循環的內部那一層循環,循環變數j的取值與所畫的圖形有關,如果是畫矩形或者正方形,則j的取值與i無關,如果是畫菱形,梯形,三角形之類的形狀,則j的取值與i有關。

Ⅱ c語言計算機圖形編程的程序求各種實例(並說明一下啊)謝謝謝!!

1》DDA法畫直線的例子:void CMyView::OnDdaline()
{
CDC* pDC=GetDC();//獲得設備指針
int xa=100, ya=300, xb=300, yb=200,c=RGB(0,255,0);//定義直線的兩端點,直線顏色
int x,y;
float dx, dy, k;
dx=(float)(xb-xa), dy=(float)(yb-ya);
k=dy/dx, y=ya;
if(abs(k)<1)
{
for (x=xa;x<=xb;x++)
{pDC->SetPixel (x,int(y+0.5),c); <br> y=y+k;}
}
if(abs(k)>=1)
{
for (y=ya;y<=yb;y++)
{pDC->SetPixel (int(x+0.5),y,c); <br> x=x+1/k;}
}
ReleaseDC(pDC);
}
void CMyView::OnBresenhamline()
{
CDC* pDC=GetDC();
int x,y,i,e,dx,dy,t;
int x1=100,y1=200,x2=350,y2=100,c=RGB(0,0,255);
dx=abs(x2-x1),dy=abs(y2-y1),e=2*dy-dx;
x=x1,y=y2;
if(dx>dy)
{
for(i=0;i<=dx;i++)
{
pDC->SetPixel(x,y,c);
x++;
if(e>=0)
{y++;<br> e=e+2*dy-2*dx;}else e=e+dy;
}
}
else
{
t=dx;
dx=dy;
dy=t;
for(i=0;i<=dx;i++)
{
pDC->SetPixel(x,y,c);
x++;
if(e>=0)
{y++;<br> e=e+2*dy-2*dx;}else e=e+dy;
}
}
}2》中心畫圓法 做園 void CMyView::OnMidpointcircle()
{ CDC* pDC=GetDC();
int xc=100,int yc=200,float R=50,float alpha=1;
int i;
float sinalpha,cosalpha,xi,yi,xii,yii,steps;
sinalpha=sin(pi*alpha);
cosalpha=cos(pi*alpha);
xi=xc+R;
yi=yc;
steps=360;

for(i=0;i<steps;i++)//每隔45°確定一個園上的點。
{
xii=xc+(xi-xc)*cosalpha-(yi-yc)*sinalpha;//確定第一點xii,yii.其與圓心的連線和 xi,yi與圓心的連線夾角45°
yii=yc+(xi-xc)*sinalpha+(yi-yc)*cosalpha;
pDC->MoveTo(xi,yi);
pDC->LineTo(xii,yii);
xi=xii;
yi=yii;
}
}3》 bresenham法畫圓void CMyView::OnBresenhamcircle()
{
// TODO: Add your command handler code here
CDC* pDC=GetDC();
int xc=300, yc=300, r=40, c=RGB(0,0,255);
int x,y,p; x=0,y=r,p=3-2*r;
while(x<y)
{
pDC->SetPixel(xc+x, yc+y, c);
pDC->SetPixel(xc-x, yc+y, c);
pDC->SetPixel(xc+x, yc-y, c);
pDC->SetPixel(xc-x, yc-y, c);
pDC->SetPixel(xc+y, yc+x, c);
pDC->SetPixel(xc-y, yc+x, c);
pDC->SetPixel(xc+y, yc-x, c);
pDC->SetPixel(xc-y, yc-x, c);
if (p<0)
p=p+4*x+6;
else
{
p=p+4*(x-y)+10;
y-=1;
}
x+=1;
}
if(x==y)
pDC->SetPixel(xc+x, yc+y, c);
pDC->SetPixel(xc-x, yc+y, c);
pDC->SetPixel(xc+x, yc-y, c);
pDC->SetPixel(xc-x, yc-y, c);
pDC->SetPixel(xc+y, yc+x, c);
pDC->SetPixel(xc-y, yc+x, c);
pDC->SetPixel(xc+y, yc-x, c);
pDC->SetPixel(xc-y, yc-x, c);
ReleaseDC(pDC);
}與圖形相關的還有很多很多,掃描線填充法,種子填充法 等等想要真正了解的話 推薦一本書!《計算機圖形學》以上程序只能說明引用方法,畢竟很對關於以上程序的東西 都在自己做的頭文件里。

Ⅲ 怎麼利用c語言實現圖形

你的截圖是源碼注釋,要輸出這種不規則的圖形,只能一行一行輸出,如果是規則圖形,例如三角、長方形、正方形、菱形等可以用多層循環完成,而這種特殊且沒有規律可言的圖形只能一行一行敲代碼了

Ⅳ 用c語言求多種圖形中任何一種圖形的面積。

#include<stdio.h>
#include<math.h>

doubletrianglearea(floata,floatb,floatc);
doublesquarearea(floata,floatb);
doubleroundarea(floatr);

intmain()
{
intindex=0;
floata,b,c,r;
doubleS;

while(1)
{
printf("請輸入圖的類型,三角形請輸入1,矩形請輸入2,圓形請輸入3。按0退出 ");
printf("請輸入圖形序號:");
scanf("%d",&index);

if(index==0)
break;
elseif(index==1)
{
printf("輸入三角形三邊長:");
scanf("%f%f%f",&a,&b,&c);
S=trianglearea(a,b,c);
}
elseif(index==2)
{
printf("輸入矩形的長和寬:");
scanf("%f%f",&a,&b);
S=squarearea(a,b);
}
elseif(index==3)
{
printf("%輸入圓形的半徑:");
scanf("%f",&r);
S=roundarea(r);
}
else
;
printf("所求面積為%lf ",S);
}
printf(" byebye ");

return0;
}

doubletrianglearea(floata,floatb,floatc)
{
doublep=0;

if(!(a+b>c&&a+c>b&&b+c>a))
{
printf("這三條邊無法組成三角形。 ");
return0;
}
p=(a+b+c)/2;

returnsqrt(p*(p-a)*(p-b)*(p-c));
}

doublesquarearea(floata,floatb)
{
returna*b;
}

doubleroundarea(floatr)
{
return3.14*r*r;
}

Ⅳ 求一個圖形的C語言編程

#define
n
10;
main()
{
int
i,j;
int
a[5][5];
int
sum=0;
for(i=0;i<5;i++)
for(j=0;j<5;j++)
scanf("%d",&a[i][j]);
for(i=0;i<5;i++)
for(j=0;j<5;j++)
if(i==j||(i+j==10))//i==j是判斷是否主對角線的元素
i+j==n
是判斷是否是次對角線的元素
sum+=a[i][j];
printf("%d",sum);
}

Ⅵ C語言中如何輸出圖形

你可以採用循環的方法來做,需要輸出A的位置的時候就輸出A,其他地方就輸出空格,就行了

#include<stdio.h>

voidmain()

{

inti,j,n;

printf("請輸入要輸出幾行: ");

scanf("%d",&n);

for(i=0;i<=n;i++)

{

for(j=0;j<n-i;j++)//每行前的空格控制

printf("");

for(intk=0;k<=2*i-1;k++)輸出字母

{

if(k==0||k==2*i-2)輸出A

printf("A");

else

printf("");

}

printf(" ");//換行

}

}

Ⅶ C語言調用函數求出這樣一個圖形

int n;
scanf("%d",&n);
for (int i=0;i<n;i++)
{
for (int j=0;j<i+1;j++)
{
printf("*");
}
printf("\n");
}
for (int i=n-1;i>0;i--)
{
for (int j=i;j>0;j--)
{
printf("*");
}
printf("\n");
}

Ⅷ c語言,求1、在主函數中,給出如下提示「請輸入圖的類型,三角形請輸入1,矩形請輸入2,圓形請輸入3。」

程序已經改好:

#include<stdio.h>

#include<math.h>

float s1();

float s2();

float s3();

float s4();

main()

{ float s;

int select;

do

{

printf(" 求圖形的面積 ");

printf("0、退出 1、長方形 2、三角形 3、圓形 4、正方形 ");

printf(" 請選擇功能:");

scanf("%d",&select);

switch(select)

{

case 1:s=s1();printf("該長方形的面積是%f ",s);break;

case 2:s=s2();printf("該三角形的面積是%f ",s);break;

case 3:s=s3();if(s>=0)printf("該圓形的面積是%f ",s);

else printf("不能構成三角形!"); break;

case 4:s=s4();printf("該正方形的面積是%f ",s);break;

case 0:return 0;

default:printf("輸入有誤,請在0~4之間選擇 ");

}

}while(1);

}

float s1()

{

float a,b;

printf("請輸入長方形的長和寬:");

scanf("%f%f",&a,&b);

return a*b;

}

float s2()

{float p;

int a,b,c;

printf("請輸入三角形的三條邊:");

scanf("%d %d %d",&a,&b,&c);;

if(c<a+b&&a<b+c&&b<a+c)

{p=(a+b+c)/2;

return sqrt(p*(p-a)*(p-b)*(p-c));

}

else return -1;

}

float s3()

{

float r;

printf("請輸入圓的半徑:");

scanf("%f",&r);

return 3.14*r*r;

}

float s4()

{

float c;

printf("請輸入正方形的邊長:");

scanf("%f",&c);

return c*c;

}

Ⅸ 急用!,C語言求數字圖形(有分)

給,已經編譯運行確認:

#include<conio.h>
#include<stdio.h>

#define N 5

void main()
{
int i,j;

for(i=0;i<N;i++)
{
for(j=i;j<N-1;j++) printf(" ");
for(j=0;j<=i;j++) printf("%d",j+1);
for(j=i;j>0;j--) printf("%d",j);

printf("\n");
}

getch();
}