`
dishell
  • 浏览: 67994 次
  • 性别: 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);
		}
	}
}

分享到:
评论

相关推荐

    c# 二次贝塞尔曲线算法

    根据控制点的数量不同,贝塞尔曲线可以分为线性贝塞尔曲线(一次)、二次贝塞尔曲线、三次贝塞尔曲线等。本文将重点介绍二次贝塞尔曲线及其在C#中的实现方法。 #### 二、二次贝塞尔曲线简介 二次贝塞尔曲线是由三个...

    基于三次贝塞尔曲线的类汽车曲率连续路径平滑

    考虑曲率连续性和最大曲率约束,一种新颖的路径平滑算法是根据三次贝塞尔曲线提出的。 在算法中,贝塞尔转弯和贝塞尔路径分别为发达。 Bezier 转弯首先设计用于连接两个任意配置。 然后可以通过以下方式获得贝塞尔...

    VC++三次样条插值&贝塞尔曲线&GDI+平滑曲线程序

    本程序是基于VC++环境,利用MFC(Microsoft Foundation Classes)框架构建的对话框程序,其主要功能是实现三次样条插值、贝塞尔曲线以及GDI+(Graphics Device Interface Plus)的平滑曲线绘制。 首先,我们要了解...

    java 二次贝塞尔曲线算法

    java 二次贝塞尔曲线算法,根据起点、终点和控制点输出点集合

    bezier曲线平滑C语言代码-贝塞尔曲线C语言实现-bezier曲线平滑-曲线拟合-贝塞尔曲线

    这是一份C语言版本的bezier曲线(贝塞尔曲线)绘制代码,实现了二次和三次bezier曲线的绘制,可用于一系列给定的离散点的曲线平滑。此代码封装成函数,可以直接调用。脚本里边有参数和代码的注释,可供使用者学习和...

    c#/WPF二次贝塞尔曲线

    其中,二次贝塞尔曲线是WPF图形绘制中的一个重要元素,它允许开发者创建平滑、曲线的图形路径。这篇关于“C#/WPF二次贝塞尔曲线”的主题将深入探讨二次贝塞尔曲线的概念、参数方程以及如何在C# WPF应用中实现它的...

    Android过若干点绘制平滑曲线.zip

    总之,通过理解贝塞尔曲线的原理和Android中的`Path`、`Paint`和`Canvas`类,开发者可以轻松地实现过若干点绘制平滑曲线的功能,为应用增添丰富的视觉效果。实践中,关键在于合理选择控制点以获得期望的曲线形状,并...

    2次贝塞尔曲线算法

    二次贝塞尔曲线是计算机图形学中常用的一种平滑曲线生成方法,它由三个点定义:起始点P0、结束点P2以及一个控制点P1。通过这三个点,我们可以计算出一系列点,这些点连接起来形成的曲线即为二次贝塞尔曲线。该曲线...

    EXCELVBA贝塞尔曲线及插值_贝塞尔平滑_EXCELVBA贝塞尔曲线及插值_excelvba插值_

    在Excel VBA编程中,贝塞尔曲线是一种常用于数据可视化和图形设计的技术,它通过一组控制点来定义平滑曲线。这种曲线在工程、艺术、游戏开发等领域都有广泛应用。本主题将深入探讨如何在Excel VBA中实现贝塞尔曲线...

    bezier曲线绘制Python代码-bezier曲线算法-贝塞尔曲线平滑-曲线拟合代码-曲线平滑算法-三次贝塞尔曲线

    这是一份python 版本的bezier曲线(贝塞尔曲线)绘制代码,实现了二次和三次bezier曲线的绘制,可用于一系列给定的离散点的曲线平滑。此代码封装成函数,可以直接调用。脚本里边有参数和代码的注释,可供使用者学习...

    swift-iOS贝塞尔曲线绘制图表

    贝塞尔曲线是一种数学上定义的平滑曲线,常用于图形设计、计算机图形学以及游戏开发等领域。在iOS开发中,我们可以利用UIBezierPath来创建各种复杂的形状和路径,包括绘制图表。 首先,UIBezierPath是基于Core ...

    python绘制贝塞尔曲线

    python绘制贝塞尔曲线

    曲线生成算法的C#gdi+实现(贝塞尔曲线、样条曲线、B样条曲线)

    通常讨论的贝塞尔曲线是三次贝塞尔曲线,它使用三个控制点来定义一条平滑曲线。这些曲线具有良好的可塑性和灵活性,能够精确地描绘复杂的形状。 3. **样条曲线**: 样条曲线是一种通过多个短的线段(通常是贝塞尔...

    本附件完美地复制了 Excel 画平滑曲线的算法,贝塞尔曲线

    本附件是一个Excel文档 ...里面的公开的VBA代码可以计算贝塞尔曲线的任意插值,即EXCEL画平滑曲线散点图的方法 附件并详细描述了这一算法,用户可以自行在其他语言实现。 本附件原创作者为 EXCELHOME.NET 的 海底眼

    [转] n次贝塞尔曲线AS再现

    博客中提供的`二次方贝塞尔曲线.swf`和`.fla`文件可能展示了如何使用AS代码动态绘制和交互操作这种曲线。 **四、n次方贝塞尔曲线** n次贝塞尔曲线需要至少n+1个控制点来定义。随着次数增加,曲线的形状变得更加复杂...

    visualization7_三次贝塞尔曲线的绘制_

    三次贝塞尔曲线是一种在计算机图形学中广泛应用的数学模型,常用于曲线的平滑插值和形状设计。本文将深入探讨三次贝塞尔曲线的基本概念、数学公式、OpenGL实现及其在可视化中的应用。 三次贝塞尔曲线是由四个控制点...

    贝塞尔曲线函数 曲线平滑算法

    贝塞尔曲线(Bézier curve)是计算机图形学中常用的一种参数曲线,它以其发明者...通过学习和理解这些源代码,开发者可以更好地掌握贝塞尔曲线的计算方法,并将其应用到自己的项目中,实现自定义的平滑曲线效果。

    二次贝塞尔曲线算法(TC)

    用TC生存二次贝塞尔曲线,其实稍微改一下就可以实现三次贝塞尔曲线的了。

    BezierDemo_绘制贝塞尔曲线的工具_bezierdemo_

    1. **控制点**:贝塞尔曲线的形状由若干个控制点决定,对于二次贝塞尔曲线有2个控制点,三次贝塞尔曲线有3个,以此类推。在这个工具中,我们关注的是三次贝塞尔曲线,需要4个控制点,包括起始点、两个中间控制点和...

    使用delphi演示贝塞尔曲线的绘制

    以下是一个简单的Delphi代码示例,演示如何绘制一条三次贝塞尔曲线: ```delphi uses System.Drawing; var Graphics: TGraphics; Pen: TPen; PathData: TPathData; begin // 初始化画布和画笔 Graphics := ...

Global site tag (gtag.js) - Google Analytics