20130521:任意轨迹库中添加19条轨迹。按屏幕矩形边界上有16个点,连接起点P_i和终点P_j的轨迹平均有3条计算,任意轨迹库最多约有240*3=720条轨迹。
20130522-20130523:用MFC开发3阶以下贝塞尔曲线轨迹编辑工具供策划使用,3阶以下贝塞尔曲线轨迹编辑工具Bezier3Tool开发完成。
【
一阶贝赛尔曲线(线段):B(t)=(1-t)P_0+tP_1,t∈[0,1]
意义:由起点P_0到终点P_1的连续点,描述一条线段。
没有控制点。
二阶贝塞尔曲线(抛物线):B(t)=(1-t)^2P_0+2t(1-t)P_1+t^2P_2,t∈[0,1]
有1个控制点P_1。
三阶贝塞尔曲线:B(t)=(1-t)^3P_0+3t(1-t)^2P_1+3t^2(1-t)P_2+P_3t^3,t∈[0,1]
有2个控制点P_1、P_2。
】
轨迹大类5:起点为右边界上的点,终点为上边界上的点
构造轨迹起点为P_9(w,0.25h)=(1024,162.5),轨迹终点为P_16(w/6,h)=(170.7,650)的第一种轨迹Trace_9_16_1、第二种轨迹Trace_9_16_2、第三种轨迹Trace_9_16_3、第四种轨迹Trace_9_16_4的LUA代码:
function Trace_9_16_1(t)
--轨迹起点为P_9(w,0.25h)=(1024,162.5),轨迹终点为P_16(w/6,h)=(170.7,650)的第一种轨迹
--local P_9=ccp(1024,162.5)
local a=1100
local x=1024-a*t
local y=0.00047*(x-1200)*(x-1200)+147.94
return ccp(x,y)
end
20130522-20130523:用MFC开发3阶以下贝塞尔曲线轨迹编辑工具供策划使用,3阶以下贝塞尔曲线轨迹编辑工具Bezier3Tool开发完成。
【
一阶贝赛尔曲线(线段):B(t)=(1-t)P_0+tP_1,t∈[0,1]
意义:由起点P_0到终点P_1的连续点,描述一条线段。
没有控制点。
二阶贝塞尔曲线(抛物线):B(t)=(1-t)^2P_0+2t(1-t)P_1+t^2P_2,t∈[0,1]
有1个控制点P_1。
三阶贝塞尔曲线:B(t)=(1-t)^3P_0+3t(1-t)^2P_1+3t^2(1-t)P_2+P_3t^3,t∈[0,1]
有2个控制点P_1、P_2。
】
轨迹大类5:起点为右边界上的点,终点为上边界上的点
构造轨迹起点为P_9(w,0.25h)=(1024,162.5),轨迹终点为P_16(w/6,h)=(170.7,650)的第一种轨迹Trace_9_16_1、第二种轨迹Trace_9_16_2、第三种轨迹Trace_9_16_3、第四种轨迹Trace_9_16_4的LUA代码:
function Trace_9_16_1(t)
--轨迹起点为P_9(w,0.25h)=(1024,162.5),轨迹终点为P_16(w/6,h)=(170.7,650)的第一种轨迹
--local P_9=ccp(1024,162.5)
local a=1100
local x=1024-a*t
local y=0.00047*(x-1200)*(x-1200)+147.94
return ccp(x,y)
end
function Trace_9_16_2(t)
--轨迹起点为P_9(w,0.25h)=(1024,162.5),轨迹终点为P_16(w/6,h)=(170.7,650)的第二种轨迹
--local P_9=ccp(1024,162.5)
local a=1100
local x=1024-a*t
local y=-0.00048*x*x+663.986
return ccp(x,y)
end
--轨迹起点为P_9(w,0.25h)=(1024,162.5),轨迹终点为P_16(w/6,h)=(170.7,650)的第二种轨迹
--local P_9=ccp(1024,162.5)
local a=1100
local x=1024-a*t
local y=-0.00048*x*x+663.986
return ccp(x,y)
end
function Trace_9_16_3(t)
--轨迹起点为P_9(w,0.25h)=(1024,162.5),轨迹终点为P_16(w/6,h)=(170.7,650)的第三种轨迹
local P_9=ccp(1024,162.5)
local P_16=ccp(170.7,650)
local tempx=(P_9.x-P_16.x)*(P_9.x-P_16.x);
local tempy=(P_9.y-P_16.y)*(P_9.y-P_16.y);
local r=math.sqrt(tempx+tempy);--r=nT=2npiA,n=1,1.5,2,2.5,……
local A=r/(math.pi*2)--200
local arg=math.atan2(P_16.y-P_9.y,P_16.x-P_9.x);
--轨迹起点为P_9=(350,300),振幅为A,周期为T=2piA,“辐角为arg的反正弦波”曲线轨迹
--将2调大为2.5
local x=A*2.5*math.pi*t
local y=A*math.sin(-2.5*math.pi*t)--+表示"正正弦波",-表示“反正弦波”
local Pt=ccp(x*math.cos(arg)-y*math.sin(arg),x*math.sin(arg)+y*math.cos(arg))--(x,y)逆时针旋转a=arg之后变为(xcosa-ysina,xsina+
--轨迹起点为P_9(w,0.25h)=(1024,162.5),轨迹终点为P_16(w/6,h)=(170.7,650)的第三种轨迹
local P_9=ccp(1024,162.5)
local P_16=ccp(170.7,650)
local tempx=(P_9.x-P_16.x)*(P_9.x-P_16.x);
local tempy=(P_9.y-P_16.y)*(P_9.y-P_16.y);
local r=math.sqrt(tempx+tempy);--r=nT=2npiA,n=1,1.5,2,2.5,……
local A=r/(math.pi*2)--200
local arg=math.atan2(P_16.y-P_9.y,P_16.x-P_9.x);
--轨迹起点为P_9=(350,300),振幅为A,周期为T=2piA,“辐角为arg的反正弦波”曲线轨迹
--将2调大为2.5
local x=A*2.5*math.pi*t
local y=A*math.sin(-2.5*math.pi*t)--+表示"正正弦波",-表示“反正弦波”
local Pt=ccp(x*math.cos(arg)-y*math.sin(arg),x*math.sin(arg)+y*math.cos(arg))--(x,y)逆时针旋转a=arg之后变为(xcosa-ysina,xsina+