三角函数法

2025年3月17日 | 阅读 3 分钟

以下方程以三角函数形式定义椭圆,如图所示

x = a * cos (θ) +h 和
y = b * sin (θ)+k
其中 (x, y) = 当前坐标
a = 长轴长度
b = 短轴长度
θ= 当前角度
(h, k) = 椭圆中心

在这种方法中,θ 的值从 0 变为 Trignometric Method 弧度。通过对称性找到剩余的点。

Trignometric Method

缺点

  1. 这是一种低效的方法。
  2. 它不是生成椭圆的交互式方法。
  3. 需要表格来查看三角函数值。
  4. 需要内存来存储 θ 的值。

算法

步骤1: 开始算法

步骤2: 声明变量 x1,y1,aa1,bb1,aa2,bb2,fx,fy,p1,a1,b1

步骤3: 初始化 x1=0 和 y1=b/* 圆的起始点值 */

步骤4: 计算 aa1=a1*a1
          计算 bb1=b1* b1
          计算 aa2=aa1*2
          计算 bb2=bb1*2

步骤5: 初始化 fx = 0

步骤6: 初始化 fy = aa_2* b1

步骤7: 计算 p1 的值,如果它是整数则取整
          p1=bb1-aa1* b1+0.25* aa1/

步骤8

While (fx < fy)
	{
		Set pixel (x1,y1)
                      Increment x i.e., x = x + 1
                      Calculate fx = fx + bb2
                       If (p1 < 0)
                                 Calculate p1 = p1 + fx + bb1/
                       else
		{
			Decrement y i.e., y = y-1
	                      Calculate fy = fy - 992;
				p1=p1 + fx + bb1-fy
                        }
                }

步骤9: 设置像素 (x1,y1)

步骤10: 计算 p1=bb1 (x+.5)(x+.5)+aa(y-1)(y-1)-aa1*bb1

步骤 11

While (y1>0)
                {
                          Decrement y i.e., y = y-1
                           fy=fx-aa2/
                         if (p1>=0)
		   p1=p1 - fx +  aa1/
                        else
                 {
                        Increment x i.e., x = x + 1
                        fx= fx+bb_2
                        p1=p1+fx-fy-aa1
                  }
        }
       Set pixel (x1,y1)

步骤12: 停止算法

使用三角函数方法绘制圆的程序

输出

Trignometric Method

椭圆轴旋转

由于椭圆显示四向对称性,因此可以轻松旋转。 新方程通过交换 a 和 b(描述长轴和短轴的值)来找到。 当使用多项式方法时,用于描述椭圆的方程变为

Trignometric Method

其中 (h, k) = 椭圆中心
a = 长轴长度
b = 短轴长度
在三角函数方法中,方程为
x = b cos (θ)+h       和       y=a sin(θ)+k

其中 (x, y) = 当前坐标
a = 长轴长度
b = 短轴长度
θ = 当前角度
(h, k) = 椭圆中心

假设您想将椭圆旋转一个非 90 度的角度。 椭圆的旋转可以通过旋转 x 和 y 轴 α 度来实现。

          x = a cos (0) - b sin (0+ ∞) + h y= b (sin 0) + a cos (0+∞) + k

Trignometric Method
下一个主题中点椭圆算法