【计算机图形学】中点画线法实现焦点在x、y轴上的椭圆绘制

【计算机图形学】中点画线法实现焦点在x、y轴上的椭圆绘制一、中点画线法原理简介1.建立基础中点画线法的原理介绍见直线绘制的博文中点画线法实现任意斜率直线的绘制。基本思路是以下一点在椭圆外/内的位置关系替换点在直线上/下关系。2.具体分析分析出椭圆右上部分、右下部分的中点画线方法,并将所得点关于y轴对称,得出整个椭圆图案。二、代码实现待补/*程序:中点画线法实现焦点在x\y轴上的椭圆绘制编译环境:Visual C++ 6.0 EasyX_20200109(beta)作者ID:
摘要由CSDN通过智能技术生成

【计算机图形学】中点画线法实现焦点在x、y轴上的椭圆绘制

一、中点画线法原理简介

1.建立基础

2.具体分析

  • 待补具体图例

二、代码实现

  • 分析出椭圆右上部分、右下部分的中点画线方法,并将所得点关于y轴对称,得出整个椭圆图案。
/*
程序:中点画线法实现焦点在x\y轴上的椭圆绘制
编译环境:Visual C++ 6.0 EasyX_20200109(beta)
作者ID:weixin_43536824
邮箱:changye303@163.com
*/
#include <easyx.h>
#include <graphics.h>
#include <conio.h>
#include <stdio.h>
#include <math.h>
//情况1:画上部分(屏幕显示为下部分)
void GetOvalUp(double a,double b,double m,double n,int COLOR,int c){
   
	double x,y,d,xx,yy,l;
	double xp = m+pow(a,2)/sqrt(pow(a,2)+pow(b,2));
	double yp = n+pow(b,2)/sqrt(pow(a,2)+pow(b,2));
	double xpp = pow(a,2)/sqrt(pow(a,2)+pow(b,2));
	double ypp = pow(b,2)/sqrt(pow(a,2)+pow(b,2));
	double d10 = pow(a,2)*(0.25-b)+pow(b,2);
	double d20 = pow(b,2)*pow(xpp+0.5,2)+pow(a,2)*pow(ypp-1,2)-pow(a,2)*pow(b,2);
	
	//x <= xp:
	x = m;
	y = n+b;
	xx = 0;
	yy = b;
	moverel((int)x,(int)y);
	d = d10;
	while (x <= xp){
   
		if(d < 0){
   
			//若焦点在x轴上
			if(c==0){
   
				putpixel((int)x,(int)y,COLOR);
			    l = x-m;
			    putpixel((int)(m-l),(int)y,COLOR);		
			}
			//若焦点在y轴上
			else{
   
				putpixel((int)y,(int)x,COLOR);
			    l 
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值