角度离散法绘制圆弧 | 椭圆

本文详细介绍了利用角度离散法来实现计算机图形学中圆弧和椭圆的绘制过程,探讨了这种方法的基本原理和步骤,包括如何确定离散点、计算坐标等关键技术。
摘要由CSDN通过智能技术生成
</pre><pre name="code" class="cpp">
#include<GL/glut.h>     //绘制圆弧程序
#include<stdio.h>
#include<math.h>
double pi=3.1415936;
int x,y;
double r,as,ae;
void arc(int x,int y,double r,double as,double ae)
{
	if(ae<as)
		ae+=2*pi;
	double dt=0.4/r;			//取角度离散值,反比,半径越大该值越小
	int n=(int)((ae-as)/dt);		//一个圆弧上总共取n个点

	glColor3f(0.0,1.0,0.0);
	int xs=(int)(x+r*(cos(as)));	//圆弧起始点
	int ys=(int)(y+r*(sin(ae)));
	glVertex2i(xs,ys);

	glBegin(GL_LINE_STRIP);			//通过绘制折线来逼近圆弧
	for(int i=0;i<n;i++)
	{
		double cost=r*cos(as+i*dt);
		double sint=r*sin(as+i*dt);
		glVertex2i(int(x+cost),int(y+sint));
	}
	glEnd();

}
void display(void)
{
	glClearColor(0.0,0.0,0.0,0.0);
	glClear(GL_COLOR_BUFFER_BIT);

	arc(x,y,r,as,ae);		
	glFlush();
}
int main(int argc,char* argv[])
{
	printf("pleas
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值