当前位置:首页 » 编程语言 » 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();
}