for(ang=0ang<2*piang+=0.01) putpixel(a*cos(ang),b*sin(ang))
------------------------------------------------------------
补充:这个是数学方面的问圆丛雹题,可以看 平面解释几何 ,如果对数学有兴趣,
可以再看立体解释几何,线性代数,橘帆这郑码些对计算机绘图都挺有用的。
#include"graphisc.h"#include"dos.h"
#include"conio.h"备液塌
int main(){
int gd=DETECT,gm,x=20,y=20,a=10,b=8,dx=1,dy=1
initgraph(&gd,&gm,"仿圆"埋凳)
for(!kbhit())
{ cleardevice()
ellipse(x,y,a,b)
x+=dxy+=dy
if(x==630||x==10) dx*=-1
if(y==472||y==8) dy*=-1
delay(500)
}
closegraph()
return 0
}
知道长轴的端点,短轴端点和中心点的坐标,就能求出来椭圆的焦点位置,不管焦点是否在坐标轴上.(不过首先要判断一下,这三个点能否构成椭圆,既满足构成椭圆的条件,如果满足则进行下面的)根据椭圆的定义,椭圆上的点到这两个焦点的距离之和是2a(a是长半轴长度,就是常州端点到中心点之间的距离,这个根据两点之间距离公式能够求出来)
选取N个点,这N个点的横坐标的取磨正值范围可以根据长轴端派轿点和短轴端点坐标来确定,设N(x,y),根据N到两个焦点的距离之和是2a可列出关于x和y的方程,今儿求出y关于x的函数,由于椭圆是对称的所以这样的函数有两个,分别在x的范围之内找一定量的N的横坐标x,再把x代入上面的函数,就可求出y,把(x,y)画在坐标轴上即可。找的点多了,它们的轨迹大致是一个椭瞎羡悔圆
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)