--function g_BezierByHeight
function g_BezierByHeight( t,startPos,endPos,maxHeight )
--产生偏移方向 1 -1
local dre = math.floor( math.random() *2 );
if dre == 0 then
dre = -1;
end
--最大高度
local subPos = cc.pSub( endPos, startPos );
local maxHeight = maxHeight;
local randHeight = math.random() * maxHeight * dre ;
--旋转角度
--local startAngle = cc.pToAngleSelf( subPos ) /math.pi * 180; --math.deg( math.atan( subPos.y/subPos.x ) );
--pSprite:setRotation( -startAngle );
--曲线高度偏移
local ratioHeight = 0.8;
if subPos.x > 0 then
if subPos.y > 0 and dre > 0 then
randHeight = randHeight + subPos.y*ratioHeight;
elseif subPos.y < 0 and dre < 0 then
randHeight = randHeight + subPos.y*ratioHeight;
end
else
if subPos.y < 0 and dre > 0 then
randHeight = randHeight + subPos.y*ratioHeight;
elseif subPos.y > 0 and dre < 0 then
randHeight = randHeight + subPos.y*ratioHeight;
end
end
--计算贝赛尔曲线偏移角度
--local length = math.sqrt( subPos.x * subPos.x + subPos.y*subPos.y )/2 ;
local nRatio = 0.5;
local bezier = {
startPos,
cc.p( subPos.x*nRatio + startPos.x ,randHeight + startPos.y ),
endPos
}
local bezierForward = cc.BezierTo:create(t, bezier);
bezierForward:setBezierRotate(true);
return bezierForward;
end
根据高度画贝塞尔曲线
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 利用贝塞尔曲线画一段连续曲线 如果我们根据几个点画一条连续的曲线, 我们使用的方法是 这个方法是由一个结束点和两个...
- http://blog.csdn.net/rhljiayou/article/details/9919713