一种任意方向的椭圆生成方法

2012-04-29 00:44:03丁宇辰
电脑知识与技术 2012年1期
关键词:图形学多边形顶点

丁宇辰

摘要:绘制椭圆时,通常是直接调用编程工具自带的函数或过程,且平行于x轴或y轴方向,对于任意方向的椭圆则不能直接绘出。本文利用Bezier曲线的生成原理,提出一种任意方向的椭圆绘制方法。

关键词:Bezier曲线;椭圆

中图分类号:TP391文献标识码:A文章编号:1009-3044(2012)01-0133-02

A Method of Any Direction of Drawing Ellipse

DING Yu-chen

(School of Computer Engineering, Nanjing Institute of Technology, Nanjing 211167, China)

Abstract: When plan ellipse, usually called directly programming tool that comes with a function or procedure, and parallel to the x axis or y axis, the ellipse cannot be directly drawn in any direction. This paper use of Bezier curve generation principle, present a ellipse drawing methods in any direction.

Key words: Bezier curves; Ellipse

在一些高级语言(如VC、VB、C、C++等)中绘制椭圆通常是调用现成的函数或过程,但用这种方法绘制的椭圆,其长轴只能是沿屏坐标系的x轴或y轴,即平行于x轴或y轴。对于任意方向的椭圆,则不能直接绘出,需要进行一系列的变换,过程繁琐且不方便。本文介绍用Bezier曲线的生成原理来绘制任意方向的椭圆的方法,该方法简单易于实现。

伪码过程描述如下:

vcellipse(int m,int n,int a,int b,int angle)

{…//变量定义

int dpoint (4,2)//定义数组,表示控制多边形的顶点

int bezierx(N);beziery(N)//定义曲线上的点

If angle=0 or angle=180 then //如果是水平方向的椭圆,求控制多边形的顶点

dpoint (1,1)= m+a…

dpoint (4,2)= n-b

else if angle=90 then//如果是垂直方向的椭圆,求控制多边形的顶点

dpoint (1,1)= m-b…

dpoint (4,2)= n+a

else

dpoint (1, 1) = (-b0 + deta) / (2 * a0)/ /计算其它方向的控制多边形顶点…

dpoint (4,2)= -dpoint(2, 2) + 2 * n end if

for i=1 to N//计算bezier曲线上的点

t=t+ε//ε是一个微小的量

bezierx(i)= (-t ^ 3 + 3 * t ^ 2 - 3 * t + 1) * dpoint(1, 1) + (3 * t ^ 3 - 6 * t ^ 2 + 3 * t) * dpoint(2, 1) + (-3 * t ^ 3 + 3 * t ^ 2) * dpoint(3, 1) + t ^ 3 * dpoint(4, 1)

beziery(i)= (-t ^ 3 + 3 * t ^ 2 - 3 * t + 1) * dpoint(1, 1) + (3 * t ^ 3 - 6 * t ^ 2 + 3 * t) * dpoint(2, 1) + (-3 * t ^ 3 + 3 * t ^ 2) * dpoint(3, 1)+ t ^ 3 * dpoint(4, 1)

next i

for i=1 to n

Line(bezierx(i),beziery(i), bezierx(i+1),beziery(i+1))//利用画线方法输出曲线

next i

4结束语

本文提出一种绘制任意方向椭圆的一种方法,这种方法编程简单,易于实现。在精度要求不是很高的场合下,所用的方法基本能达到要求。

参考文献:

[1]杜晓增.计算机图形学基础[M].北京:机械工业出版社, 2007:119-121.

[2]周天祥,杨勋年.快速绘制Bezier曲线.计算机辅助设计与图形学学报, 2002,14(6): 501-502.

[3]徐雨明,文双春.Bezier曲线递归分割算法的研究.衡阳师范学院学报, 2007,28(6):114-115.

猜你喜欢
图形学多边形顶点
多边形中的“一个角”问题
过非等腰锐角三角形顶点和垂心的圆的性质及应用(下)
中等数学(2021年9期)2021-11-22 08:06:58
多边形的艺术
解多边形题的转化思想
多边形的镶嵌
趣味(数学)(2019年11期)2019-04-13 00:26:32
关于顶点染色的一个猜想
山东科学(2018年6期)2018-12-20 11:08:58
突出实践需求的GIS专业《计算机图形学》课程优化改革
第7届国际图象图形学学术会议
数学问答
非计算机专业计算机图形学教学改革初探