用as3 两条贝塞尔曲线相交且显示交点的程序,请高手帮忙,或者有相关程序的介绍也行。
两条贝塞尔曲线相交且显示交点的程序,或者网络上有相关的程序介绍也好,请各位as高手帮帮忙。谢谢了!...
两条贝塞尔曲线相交且显示交点的程序,或者网络上有相关的程序介绍也好,请各位as高手帮帮忙。谢谢了!
展开
1个回答
展开全部
import flash.geom.Point;
var t0:Point=new Point(100,100)
var t1:Point=new Point(100,300)
var t2:Point=new Point(300,100)
drawBeiSaier(t0,t2,t1,4)
//起点,终点,控制点,段数
//你可以修改段数来观察效果
function drawBeiSaier(startPoint:Point,endPoint:Point,controlPoint:Point,num:int):void
{
var x0:Number = startPoint.x;
var y0:Number = startPoint.y;
var x1:Number = controlPoint.x;
var y1:Number = controlPoint.y;
var x2:Number = endPoint.x;
var y2:Number = endPoint.y;
graphics.lineStyle(1,0xFF0000,1);
graphics.moveTo(x0,y0);
for (var t=0; t<=1; t+=1/num)
{
var xp:Number = (1 - t) * (1 - t) * x0 + 2 * t * (1 - t) * x1 + t * t * x2;
var yp:Number = (1 - t) * (1 - t) * y0 + 2 * t * (1 - t) * y1 + t * t * y2;
graphics.lineTo(xp,yp);
}
}
//如果你能读懂这段代码,相信你能自己研究出怎么求得交点
//你可以将代码粘贴到时间轴,运行看看效果。~
//提示,在for循环的时候将所有的坐标点写入数组存起来,与另一条的进行比较,相等这表示相交,注意因为是小数运算,所以可能存在值不等的情况,所以需要进一步比较多相邻点的直接的坐标大小,来判断是否有相交。
//这个做起来还是比较费时间,这里我就不再做了
var t0:Point=new Point(100,100)
var t1:Point=new Point(100,300)
var t2:Point=new Point(300,100)
drawBeiSaier(t0,t2,t1,4)
//起点,终点,控制点,段数
//你可以修改段数来观察效果
function drawBeiSaier(startPoint:Point,endPoint:Point,controlPoint:Point,num:int):void
{
var x0:Number = startPoint.x;
var y0:Number = startPoint.y;
var x1:Number = controlPoint.x;
var y1:Number = controlPoint.y;
var x2:Number = endPoint.x;
var y2:Number = endPoint.y;
graphics.lineStyle(1,0xFF0000,1);
graphics.moveTo(x0,y0);
for (var t=0; t<=1; t+=1/num)
{
var xp:Number = (1 - t) * (1 - t) * x0 + 2 * t * (1 - t) * x1 + t * t * x2;
var yp:Number = (1 - t) * (1 - t) * y0 + 2 * t * (1 - t) * y1 + t * t * y2;
graphics.lineTo(xp,yp);
}
}
//如果你能读懂这段代码,相信你能自己研究出怎么求得交点
//你可以将代码粘贴到时间轴,运行看看效果。~
//提示,在for循环的时候将所有的坐标点写入数组存起来,与另一条的进行比较,相等这表示相交,注意因为是小数运算,所以可能存在值不等的情况,所以需要进一步比较多相邻点的直接的坐标大小,来判断是否有相交。
//这个做起来还是比较费时间,这里我就不再做了
追问
不好意思,我看了还几天也没弄懂你的这段代码是什么意思。也看了效果,还是没有明白,你能解释的更详细些么。谢谢你了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询