`
dishell
  • 浏览: 68730 次
  • 性别: Icon_minigender_1
  • 来自: 西安
最近访客 更多访客>>
社区版块
存档分类
最新评论

AS 绘制多条平滑曲线(基于二次贝塞尔曲线)

阅读更多
绘制策略:在每两对点之间,加入一个新点(中间点)放在这两点的正中间。然后使用这些中间点作为起点和终点,而把最初的那些点(原始点)作为控制点
package
{
	import flash.display.Sprite;
	import flash.events.MouseEvent;
	
	public class MultiCurves3 extends Sprite
	{
		private var numPoints:uint = 9;
		public function MultiCurves3()
		{
			init();
		}
		
		private function init():void
		{
			var points:Array = new Array();
			for (var i:int = 0; i < numPoints; i++)
			{
				points[i] = new Object();
				points[i].x = Math.random() * stage.stageHeight;
				points[i].y = Math.random() * stage.stageHeight;
			}
			
			// find the first midpoint and move to it
			var xc1:Number = (points[0].x + points[numPoints - 1].x) / 2;
			var yc1:Number = (points[0].y + points[numPoints - 1].y) / 2;
			graphics.lineStyle(1);
			graphics.moveTo(xc1, yc1);

			// curve through the rest, stopping at midpoints
			for (i = 0; i < numPoints - 1; i ++)
			{
				var xc:Number = (points[i].x + points[i + 1].x) / 2;
				var yc:Number = (points[i].y + points[i + 1].y) / 2;
				graphics.curveTo(points[i].x, points[i].y, xc, yc);
			}
			
			// curve through the last point, back to the first midpoint
			graphics.curveTo(points[i].x, points[i].y, xc1, yc1);
		}
	}
}

分享到:
评论

相关推荐

    绘制贝塞尔曲线

    贝塞尔曲线是一种在计算机图形学中广泛使用的数学方法,用于创建平滑的曲线路径。它在二维和三维图形设计、游戏开发、动画制作等领域都有重要应用。标题“绘制贝塞尔曲线”表明我们将讨论如何利用编程技术来实现这种...

    绘制贝塞尔曲线_贝塞尔曲线_赛贝尔曲线_

    此外,为了绘制更复杂的曲线,你可能需要组合多条贝塞尔曲线,或者通过改变控制点的位置动态更新曲线。 在实际应用中,贝塞尔曲线被广泛用于游戏开发、动画制作、UI设计等领域,因为它们能够以平滑且连续的方式连接...

    AS3贝塞尔算法

    线性贝塞尔曲线是一条简单的直线,而二次贝塞尔曲线则涉及两个控制点,它们能够生成更为复杂的曲线形状。更高阶的贝塞尔曲线(如三次或四次)可以通过组合多个二次贝塞尔曲线实现。 创建贝塞尔曲线通常包括以下几个...

    canvas进阶之如何画出平滑的曲线

    二次贝塞尔曲线由一个起点、一个控制点和一个终点组成,其中控制点决定了曲线的形状和方向。在这个方法中,起点是由上一次调用`moveTo`或`lineTo`设置的,而`quadraticCurveTo`定义了曲线的控制点和结束点。 在上述...

    canvas小画板之平滑曲线的实现

    总结来说,实现Canvas小画板的平滑曲线功能,我们需要理解基本的绘图逻辑,合理使用鼠标事件,以及掌握如二次贝塞尔曲线这样的平滑曲线绘制方法。通过调整和优化,我们可以创建出更符合用户需求的交互式画板应用。

    ActionScript 3.0 开发人员指南中文官网上下的

    - **绘制线条和曲线**:包括直线、弧线和贝塞尔曲线等。 - **使用内置方法绘制形状**:如 `drawRect()`、`drawRoundRect()` 等。 - **创建渐变线条和填充**:支持线性渐变和径向渐变。 - **将Math类与绘制方法...

Global site tag (gtag.js) - Google Analytics