変数を使う関数。

--未来予測(FCAsaxyz=現在のベクトル FCAsbxyz=過去のベクトル)
_180pi=57.2957795130823209 * 8.6	--事前計算*予測修正
VECold={0,0,0}				--過去ベクトル
function _FORECAST(FCAsax,FCAsay,FCAsaz, FCAsbx,FCAsby,FCAsbz)
	rot=_NAI(FCAsax,FCAsay,FCAsaz,FCAsbx,FCAsby,FCAsbz)
	if rot>=1 then
		FCAscx,FCAscy,FCAscz=FCAsax,FCAsay,FCAsaz
	else
		rot=-math.rad(-math.acos(rot)*_180pi)
		WGAIx,WGAIy,WGAIz=_WGAI(-FCAsax,-FCAsay,-FCAsaz,FCAsbx,FCAsby,FCAsbz)
		loop_cos,loop_sin=math.cos(rot),math.sin(rot)
		FCAscx,FCAscy,FCAscz=_SEI(FCAsbx*loop_cos+WGAIx*loop_sin,
		                          FCAsby*loop_cos+WGAIy*loop_sin,
		                          FCAsbz*loop_cos+WGAIz*loop_sin)
	end
	return FCAscx,FCAscy,FCAscz end

--マウスカーソルの移動量取得(RCsound+エイミングモード用)
old_x,old_y=_MX(),_MY()		--マウスカーソル過去の座標
function _MTRA()
	--移動値取得
	track_x,track_y=_MX()-old_x,_MY()-old_y
	old_x,old_y=_MX(),_MY()
	--ループ判定
	if math.abs(track_x)>_WIDTH() *0.65 then track_x=oldtrack_x end
	if math.abs(track_y)>_HEIGHT()*0.65 then track_y=oldtrack_y end
	oldtrack_x,oldtrack_y=track_x,track_y		--過去の移動値更新
	--返り値
	return -track_x,track_y
end

--速度取得(chip_No=取得するチップの番号)
SPEED = 0
pX,pY,pZ = {0,0},{0,0},{0,0}
pX[0],pY[0],pZ[0] = 0,0,0
function _SPEED(chip_No)
	pX,pY,pZ={pX[2],_X(chip_No)},{pY[2],_Y(chip_No)},{pZ[2],_Z(chip_No)}	--配列更新{過去,現在}
	pX[0],pY[0],pZ[0]=pX[1]-pX[2],pY[1]-pY[2],pZ[1]-pZ[2]
	--返り値
	return math.sqrt(pX[0]*pX[0]+pY[0]*pY[0]+pZ[0]*pZ[0])*100
end
最終更新:2013年04月05日 12:13