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;
}