c语言画椭圆
Ⅰ 用c语言怎么绘制线条,画圆
题目:画椭圆ellipse
程序源代码:
#include "stdio.h"
#include "graphics.h"
#include "conio.h"前渣亏
main()
{
int x=360,y=160,driver=VGA,mode=VGAHI;
int num=20,i;
int top,bottom;
initgraph(&driver,&mode,"");
top=y-30;
bottom=y-30;
for(i=0;i<num;i++)
{
ellipse(250,250,0,360,top,bottom);
top-=5;
bottom+=5;
}
getch();
} 题目:利用ellipse and rectangle 画图。
程序源代码:
#include "stdio.h"
#include "graphics.h"
#include "conio.h"
main()
{
int driver=VGA,mode=VGAHI;
int i,num=15,top=50;
int left=20,right=50;
initgraph(&driver,&mode,""慧神);
for(i=0;i<num;i++)
{
ellipse(250,250,0,360,right,left);
ellipse(250,250,0,360,20,top);
rectangle(20-2*i,20-2*i,10*(i+2),10*(i+2));
right+=5;
left+=5;
top+=10;
}
getch();
} 题目:画图,学用circle画圆形。
程序源代码:
/*circle*/
#include "graphics.h"
main()
{int driver,mode,i;<br>float j=1,k=1;<br>driver=VGA;mode=VGAHI;<br>initgraph(&driver,&mode,"");<br>setbkcolor(YELLOW);<br>for(i=0;i<=25;i++)<br>{<br>setcolor(8);<br>circle(310,250,k);<br>k=k+j;<br>j=j+0.3;<br>}
} 题目:画图,学用line画直线。
程序源代码:
#include "graphics.h"
main()
{int driver,mode,i;<br>梁册float x0,y0,y1,x1;<br>float j=12,k;<br>driver=VGA;mode=VGAHI;<br>initgraph(&driver,&mode,"");<br>setbkcolor(GREEN);<br>x0=263;y0=263;y1=275;x1=275;<br>for(i=0;i<=18;i++)<br>{<br>setcolor(5);<br>line(x0,y0,x0,y1);<br>x0=x0-5;<br>y0=y0-5;<br>x1=x1+5;<br>y1=y1+5;<br>j=j+10;<br>}
x0=263;y1=275;y0=263;
for(i=0;i<=20;i++)
{
setcolor(5);
line(x0,y0,x0,y1);
x0=x0+5;
y0=y0+5;
y1=y1-5;
}
} 这几个好好看看吧
Ⅱ 用C语言写出画一个圆形的代码
可以参考下面的代码:
#include<math.h>
main()
{
double y;
int x,m;
for(y=10;y>=-10;y--)
{
m=2.5*sqrt(100-y*y);
for(x=1;x<50-m;x++)
printf(" ");
printf("*");
for(;x<50+m;x++)
printf(" ");
printf("* ");
}
}
(2)c语言画椭圆扩展阅读:
for循表达式为:for(单次表达式;条件表达式;末尾循环体){中间循环体;}。
其中,表示式皆可以省略,但分号不可省略,因为“;”可以代表一个空语句,省略了之后语句减少,即为语句格式发生变化,则编译器不能识别而无法进行编译。for循环小括号里第一个“;”号前为一个为不参与循环的单次表达式。
Ⅲ C语言 画椭圆的代码。0 error 0worring 但是安乐死了。。求大神解答。附图
y=(int)(y0+(float)sqrt(b*(1-(x*x)/a)));
这条语句有问题,改成如下的语乎谨句。因为坐标平移,所散拦以x-x0;除法必须是浮点除法,冲顷胡所以先乘以1.0再除,否则是整除,结果就差的太远了
y=(int)(y0+(float)sqrt(b*(1-1.0*(x-x0)*(x-x0)/a)));
改后的运行结果
Ⅳ 用C语言模拟画图行(直线、 椭圆形、 三角形、 矩形、 梯形)求写编程
#include <stdio.h>
#define PI 3.14159
float erea_round(float r)
{
//圆形面积
return r * r * PI;
}
float erea_tri(float d,float h)
{
//三角形 面积棚毕
return 0.5 * d * h;
}
float erea_rec(float a,float b)
{
//矩形面积
return a * b;
}
int main()
{
float r,a,b,d,h;
int choose;
while (1)
{
printf("请选择要计算的图像:\n");
printf("1、圆形\n");
printf("2、三角形碧滚\n");
printf("3、矩形\n");
printf("4、退出\n");
scanf("%d",&choose);
if (choose == 1)
{
printf("请输入圆的半径:\n");
scanf("链慧芹%f",&r);
printf("该圆面积为:%.3f\n",erea_round(r));
}
else if (choose == 2)
{
printf("请输入三角形的底和高:\n");
scanf("%f%f",&d,&h);
printf("该三角形面积为:%.3f\n",erea_tri(d,h));
}
else if (choose == 3)
{
printf("请输入矩形的长和宽:\n");
scanf("%f%f",&a,&b);
printf("该矩形面积为:%.3f\n",erea_rec(a,b));
}
else return 0;
}
return 0;
}
Ⅳ C语言画一个椭圆,能任意角度旋转
/* 旋转的立体椭球 */
#include <graphics.h>
#include <math.h>宴正
#include <conio.h>
#define PI 3.14159
#define T PI/伍祥橘180
#define NN 36
#define DT PI/NN
#define DIST 0.8
#define R 190
static int n=1;
void trans(t,s)
float t[3];
float s[3][3];
{
s[0][0]=cos(t[1])*cos(t[2]); s[0][1]=cos(t[1])*sin(t[2]);
s[0][2]=-sin(t[1]);
s[1][0]=sin(t[0])*sin(t[1])*cos(t[2])-cos(t[0])*sin(t[2]);
s[1][1]=sin(t[0])*sin(t[1])*sin(t[2])+cos(t[0])*cos(t[2]);
s[1][2]=sin(t[0])*cos(t[1]);
s[2][0]=cos(t[0])*sin(t[1])*cos(t[2])+sin(t[0])*sin(t[2]);
s[2][1]=cos(t[0])*sin(t[0])*sin(t[2])-sin(t[0])*cos(t[2]);
s[2][2]=cos(t[0])*cos(t[1]);
}
void draw(m,da,db)
float m[3][3],da,db;
{
float f[3],f0 , x0,y0,x1,y1,x2,y2;
f[0]=R*sin(da)*cos(db); f[1]=R*sin(da)*sin(db);
f[2]=R*cos(da);
f0=f[0]*m[0][2]+f[1]*m[1][2]+f[2]*m[2][2];
if(f0<=0) n=1;
else
{
x0=300.0;y0=165.0;
x2=(m[0][0]*f[0]+m[1][0]*f[1]+m[2][0]*f[2])+x0;
y2=(m[0][1]*f[0]+m[1][1]*f[1]+m[2][1]*f[2])*DIST+y0;
if(n==1) {n=2;x1=x2;y1=y2;}
else
{
line(x1,y1,x2,y2);
x1=x2;y1=y2;
}
}
}
main()
{
float d[3],r[3][3],ta,tb;
char k;
int gdriver=VGA,gmode=VGAMED, i,p=1;
initgraph(&gdriver,&gmode,"c:\\tc");
setbkcolor(BLACK);setcolor(GREEN);
d[1]=30*T; d[2]=10*T;
do{
for(i=0;i<腔团=361;i+=1)
{
k=kbhit();
if(k!=0)break;
setactivepage(p);
d[0]=i*T;
cleardevice();
trans(d,r);
for(tb=0.0;tb<PI;tb+=DT)
{
n=1;
for(ta=0.0;ta<2.1*PI;ta+=DT) draw(r,ta,tb);}
for(ta=0.0;ta<PI;ta+=DT)
{
n=1;
for(tb=0.0;tb<2.1*PI;tb+=DT) draw(r,ta,tb);
}
setvisualpage(p);delay(150);p=1-p;
}
}
getch();closegraph();
}
Ⅵ 怎样用c语言画一个圆啊,在c-free5.0上可以运行的,有graphics.h头文件了!不懂弄…
//纯用*符号输出园,指李厅园边会不整齐,园半径越大越园
#include<stdio.h>
#include<math.h>
#define rad 19 //超过19只看到部分园,不过园边整齐些
void main()
{
int i,j;
double tmp;
double knum,xnum; //计算空格数和星号数
//输出上半圆
for ( i=0; i<rad; i++)
{
tmp=rad*rad-(rad-i)*(rad-i);
knum=sqrt(tmp)+0.4;
xnum=knum+knum;//得到星号数
knum=rad-knum; //得到空格数
tmp=0;
for ( j=knum; j>0; j--)
{
if (tmp<38.0) //超过80个字符就不要输出了
{
printf(" ");//换成一个空格扰模,出来唯隐是椭圆
}
tmp++;
}
for ( j=xnum; j>0; j--)
{
if (tmp<38.0)
{
printf("**");//换成一个*,出来是椭圆
}
tmp++;
}
printf("\n");
}
//输出下半圆
for ( i=rad; i>0; i-- )
{
tmp=rad*rad-(rad-i)*(rad-i);
knum=sqrt(tmp)+0.4;
xnum=knum+knum;
knum=rad-knum;
tmp=0;
tmp=0;
for ( j=knum; j>0; j--)
{
if (tmp<38.0)
{
printf(" ");
}
tmp++;
}
for ( j=xnum; j>0; j--)
{
if (tmp<38.0)
{
printf("**");
}
tmp++;
}
printf("\n");
}
printf("\n");
} <收起
Ⅶ VC++6.0 C语言 画一个斜椭圆
你好
很高兴为你郑基岁解答
答案锋腊是:基于对话框的程序:
voidCVc6aDlg::OnPaint()
{
if(IsIconic())
{
.......................
}
else
{
//就是下面的代码
CPaintDCdc(this);
::SetGraphicsMode(dc.GetSafeHdc(),GM_ADVANCED);
XFORMxf;
xf.eDx=xf.eDy=0;
xf.eM11=0.4330;//0.5*cos(30)
xf.eM12=-0.25;//0.5*[-sin(喊睁30)]
xf.eM21=0.25;//0.5*sin(30)
xf.eM22=0.4330;//0.5*cos(30)
::SetWorldTransform(dc.GetSafeHdc(),&xf);
dc.Ellipse(100,300,300,200);
CDialog::OnPaint();
}
}
满意请采纳,谢谢
Ⅷ c语言画椭圆
知道长轴的端点,短轴端点和中心点的坐标,就能求出来椭圆的焦点位置,不管焦点是否在坐标轴上.(不过首先要判断一下,这三个点能否构成椭圆,既满足构成椭圆的条件,如果满足则进行下面的)根据椭圆的定义,椭圆上的点到这两个焦点的距离之和是2a(a是长半轴长度,就是常州端点到中心点之间的距离,这个根据两点之间距离公式能够求出来)选取N个点,这N个点的横坐标的取值范围可以瞎羡悔根据长轴端点和短轴端点坐标来确定,设N(x,y),根据N到两个焦点的距离之和是2a可列出关于x和y的方程,今儿求出y关于x的函数,由于椭圆是对称的所以这样的函数有两个,分别在x的范围之内找一定量的N的横坐标x,再把x代入上面的函数,就可求出y,把(x,y)画在坐标轴上即可。找的点多了,它们的轨迹大致是一个派轿椭圆磨正
Ⅸ 不用库,如何用C语言画画圆/椭圆几何图形
我只能这样告李腔祥诉你
用*围成哪搏圆芹圆形椭圆形
不用库,就自己编个库(但是程序员都不一定能编出来)
Ⅹ 怎么用C语言画一个圆形急~
#include<stdio.h>
#include<math.h>
int main()
{
double y;
int x,m;
for(y=10;y>=-10;y–)
{
m=2.5*sqrt(100-y*y); /*计算行y对应的列坐标m,2.5是屏幕纵横比调节系数因为屏幕的
行距大于列距,不进行调节显示出来的将是椭圆*/
for(x=1;x<30-m;x++) printf(" "); /*图形左侧空白控制*/
printf("*"); /*圆的左侧*/
for(;x<30+m;x++) printf(" "); /*图形的空心部分控制*/
printf("*\n"); /*圆的右侧*/
}
return 0;
}