如何用OpenGL或DirectX或其他东西绘制空间圆?

如何用OpenGL或DirectX或其他东西绘制空间圆?,第1张

opengl里面可以用二次曲面函数画:
void gluSphere(
GLUquadricObj qobj,
GLdouble radius,
GLint slices,
GLint stacks
);
其中各个参数的含义是这样的:
qobj
利用gluNewQuadric创建的一个二次对象
radius
圆的半径
slices
stacks是对圆的划分参数。

用Ellipse(float x,float y,float w,float h)吧,这是画椭圆的函数,x,y为中心坐标,w,h是椭圆的宽高,如果w=h那就是一个圆了,比如Ellipse(100,100,50,50)就是在100,100位置画一个直径为50的圆

相机是一样的,加上防暴型外壳级别相机中,基于工业级防爆要求很复杂,主要是防水,防结露,防气,防机械冲击基本上密封状态下,许多壳牌也比照相机的情况下更昂贵,相机不高或低,防暴外壳在千元以上。

glBegin(GL_LINE_LOOP);
for(i=0; i<n; ++i)
glVertex2f(Rcos(2Pi/ni), Rsin(2Pi/ni));
glEnd();
上面4行代码就是画半径为R的圆用的, 如果你要让圆的半径是5, 圆心在5, 5的话
需要改成
glBegin(GL_LINE_LOOP);
for(i=0; i<n; ++i)
glVertex2f(5 + 5cos(2Pi/ni), 5 + 5sin(2Pi/ni));
glEnd();
或者把R改成5

需要把椭圆的弧线拆分成直线段。当线段足够密集的时候,在屏幕上看上去就圆了
在xy的直角坐标系中,对于椭圆,将圆心放在原点,长轴(长半径为r1)与x轴重合,短轴(短半径为r2)与y轴重合,那从圆心出发与x轴正方向夹角a的射线与椭圆交点为:

r1cosa

r2sina

你可以这样画椭圆以后通过OpenGL矩阵进行平移和旋转。圆就是长短轴相等的椭圆~


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13044661.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-29
下一篇 2023-05-29

发表评论

登录后才能评论

评论列表(0条)

保存