日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

flex pv3d 有用公式

發(fā)布時(shí)間:2023/12/2 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 flex pv3d 有用公式 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

實(shí)用公式?

統(tǒng)領(lǐng)全書,我們已經(jīng)有了各種運(yùn)動(dòng)和效果的公式。我已經(jīng)提取出了最實(shí)用和最常用的公式、方程、以及代碼的摘錄,并將它們列在本章的最后。我認(rèn)為將它們放到同一個(gè)地方應(yīng)該對(duì)大家非常有幫助,因此我將這些我認(rèn)為最需要的內(nèi)容放到一起作為整體的一個(gè)參考資料。我將會(huì)在這一頁夾上書簽。?

?

?

第三章?
基礎(chǔ)三角函數(shù)的計(jì)算:?
角的正弦值 = 對(duì)邊 / 斜邊?
角的余弦值 = 鄰邊 / 斜邊?
角的正切值 = 對(duì)邊 / 鄰邊?

?

弧度轉(zhuǎn)換為角度以及角度轉(zhuǎn)換為弧度:?
弧度 = 角度 * Math.PI / 180?
角度 = 弧度 * 180 / Math.PI?

?

向鼠標(biāo)(或者任何一個(gè)點(diǎn))旋轉(zhuǎn):?
// 用要旋轉(zhuǎn)到的 x, y 坐標(biāo)替換 mouseX, mouseY?
dx = mouseX - sprite.x;?
dy = mouseY - sprite.y;?
sprite.rotation = Math.atan2(dy, dx) * 180 / Math.PI;?

?

創(chuàng)建波形:?
// 將 x, y 或其它屬性賦值給 Sprite 影片或影片剪輯,?
// 作為繪圖坐標(biāo),等等。?
public function onEnterFrame(event:Event){?
value = center + Math.sin(angle) * range;?
angle += speed;?
}?

?

創(chuàng)建圓形:?
// 將 x, y 或其它屬性賦值給 Sprite 影片或影片剪輯,?
// 作為繪圖坐標(biāo),等等。?
public function onEnterFrame(event:Event){?
xposition = centerX + Math.cos(angle) * radius;?
yposition = centerY + Math.sin(angle) * radius;?
angle += speed;?
}?

?

創(chuàng)建橢圓:?
// 將 x, y 或其它屬性賦值給 Sprite 影片或影片剪輯,?
// 作為繪圖坐標(biāo),等等。?
public function onEnterFrame(event:Event){?
xposition = centerX + Math.cos(angle) * radiusX;?
yposition = centerY + Math.sin(angle) * radiusY;?
angle += speed;?
}?

?

獲得兩點(diǎn)間的距離:?
// x1, y1 和 x2, y2 是兩個(gè)點(diǎn)?
// 也可以是 Sprite / MovieClip 坐標(biāo),鼠標(biāo)坐標(biāo),等等。?
dx = x2 – x1;?
dy = y2 – y1;?
dist = Math.sqrt(dx*dx + dy*dy);?

?

第四章?

十六進(jìn)制轉(zhuǎn)換為十進(jìn)制:?
trace(hexValue);?

?

十進(jìn)制轉(zhuǎn)換為十六進(jìn)制:?
trace(decimalValue.toString(16));?

?

顏色組合:?
color24 = red << 16 | green << 8 | blue;?
color32 = alpha << 24 | red << 16 | green << 8 | blue;?

?

顏色提取:?
red = color24 >> 16;?
green = color24 >> 8 & 0xFF;?
blue = color24 & 0xFF;?
alpha = color32 >> 24;?
red = color32 >> 16 & 0xFF;?
green = color32 >> 8 & 0xFF;?
blue = color232 & 0xFF;?

?

穿過某點(diǎn)繪制曲線:?
// xt, yt 是我們想要穿過的一點(diǎn)?
// x0, y0 以及 x2, y2 是曲線的兩端?
x1 = xt * 2 – (x0 + x2) / 2;?
y1 = yt * 2 – (y0 + y2) / 2;?
moveTo(x0, y0);?
curveTo(x1, y1, x2, y2);?

?

第五章?
角速度轉(zhuǎn)換為 x, y 速度:?
vx = speed * Math.cos(angle);?
vy = speed * Math.sin(angle);?

?

角加速度(作用于物體上的 force)轉(zhuǎn)換為 x, y 加速度:?
ax = force * Math.cos(angle);?
ay = force * Math.sin(angle);?

?

將加速度加入速度:?
vx += ax;?
vy += ay;?

?

將速度加入坐標(biāo):?
movieclip._x += vx;?
sprite.y += vy;?

?

第六章?
移除出界對(duì)象:?
if(sprite.x - sprite.width / 2 > right ||?
sprite.x + sprite.width / 2 < left ||?
sprite.y – sprite.height / 2 > bottom ||?
sprite.y + sprite.height / 2 < top)?
{?
// 刪除影片的代碼?
}?

?

重置出界對(duì)象:?
if(sprite.x - sprite.width / 2 > right ||?
sprite.x + sprite.width / 2 < left ||?
sprite.y – sprite.height / 2 > bottom ||?
sprite.y + sprite.height / 2 < top)?
{?
// 重置影片的位置和速度?
}?

?

屏幕環(huán)繞出界對(duì)象:?
if(sprite.x - sprite.width / 2 > right)?
{?
sprite.x = left - sprite.width / 2;?
}?
else if(sprite.x + sprite.width / 2 < left)?
{?
sprite.x = right + sprite.width / 2;?
}?
if(sprite.y – sprite.height / 2 > bottom)?
{?
sprite.y = top – sprite.height / 2;?
}?
else if(sprite.y + sprite.height / 2 < top)?
{?
sprite.y = bottom + sprite.height / 2;?
}?

?

摩擦力應(yīng)用(正確方法):?
speed = Math.sqrt(vx * vx + vy * vy);?
angle = Math.atan2(vy, vx);?
if(speed > friction)?
{?
speed -= friction;?
}?
else?
{?
speed = 0;?
}?
vx = Math.cos(angle) * speed;?
vy = Math.sin(angle) * speed;?

?

摩擦力應(yīng)用(簡(jiǎn)便方法):?
vx *= friction;?
vy *= friction;?

?

第八章:?
簡(jiǎn)單緩動(dòng)運(yùn)動(dòng),長(zhǎng)形:?
var dx:Number = targetX - sprite.x;?
var dy:Number = targetY - sprite.y;?
vx = dx * easing;?
vy = dy * easing;?
sprite.x += vx;?
sprite.y += vy;?

?

簡(jiǎn)單緩動(dòng)運(yùn)動(dòng),中形:?
vx = (targetX - sprite.x) * easing;?
vy = (targetY - sprite.y) * easing;?
sprite.x += vx;?
sprite.y += vy;?

?

簡(jiǎn)單緩動(dòng)運(yùn)動(dòng),短形:?
sprite.x += (targetX - sprite.x) * easing;?
sprite.y += (targetY - sprite.y) * easing;?

?

簡(jiǎn)單彈性運(yùn)動(dòng),長(zhǎng)形:?
var ax:Number = (targetX - sprite.x) * spring;?
var ay:Number = (targetY - sprite.y) * spring;?
vx += ax;?
vy += ay;?
vx *= friction;?
vy *= friction;?
sprite.x += vx;?
sprite.y += vy;?

?

簡(jiǎn)單彈性運(yùn)動(dòng),中形:?
vx += (targetX - sprite.x) * spring;?
vy += (targetY - sprite.y) * spring;?
vx *= friction;?
vy *= friction;?
sprite.x += vx;?
sprite.y += vy;?

?

簡(jiǎn)單彈性運(yùn)動(dòng),短形:?
vx += (targetX - sprite.x) * spring;?
vy += (targetY - sprite.y) * spring;?
sprite.x += (vx *= friction);?
sprite.y += (vy *= friction);?

?

偏移彈性運(yùn)動(dòng):?
var dx:Number = sprite.x - fixedX;?
var dy:Number = sprite.y - fixedY;?
var angle:Number = Math.atan2(dy, dx);?
var targetX:Number = fixedX + Math.cos(angle) * springLength;?
var targetY:Number = fixedX + Math.sin(angle) * springLength;?
// 如前例彈性運(yùn)動(dòng)到 targetX, targetY?

?

第九章?
距離碰撞檢測(cè):?
// 從影片 spriteA 和 spriteB 開始?
// 如果使用一個(gè)空白影片,或影片沒有半徑(radius)屬性?
// 可以用寬度或高度除以 2。?
var dx:Number = spriteB.x - spriteA.x;?
var dy:Number = spriteB.y - spriteA.y;?
var dist:Number = Math.sqrt(dx * dx + dy * dy);?
if(dist < spriteA.radius + spriteB.radius)?
{?
// 處理碰撞?
}?

?

多物體碰撞檢測(cè):?
var numObjects:uint = 10;?
for(var i:uint = 0; i < numObjects - 1; i++)?
{?
// 使用變量 i 提取引用?
var objectA = objects[i];?
for(var j:uint = i+1; j?
{?
? // // 使用變量 j 提取引用?
? var objectB = objects[j];?
? // perform collision detection?
? // between objectA and objectB?
}?
}?

?

第十章?
坐標(biāo)旋轉(zhuǎn):?
x1 = Math.cos(angle) * x - Math.sin(angle) * y;?
y1 = Math.cos(angle) * y + Math.sin(angle) * x;?

?

反坐標(biāo)旋轉(zhuǎn):?
x1 = Math.cos(angle) * x + Math.sin(angle) * ;y?
y1 = Math.cos(angle) * y - Math.sin(angle) * x;?

?

第十一章?
動(dòng)量守恒的數(shù)學(xué)表達(dá)式:?
??????????????? (m0 – m1) * v0 + 2 * m1 * v1?
v0Final = ----------------------------------------------?
????????????????????????? m0 + m1?

??????????????? (m1 – m0) * v1 + 2 * m0 * v0?
v1Final = ---------------------------------------------?
????????????????????????? m0 + m1?


動(dòng)量守恒的 ActionScript 表達(dá)式,短形:?
var vxTotal:Number = vx0 - vx1;?
vx0 = ((ball0.mass - ball1.mass) * vx0 +?
2 * ball1.mass * vx1) /?
(ball0.mass + ball1.mass);?
vx1 = vxTotal + vx0;?

?

第十二章?
引力的一般公式:?
force = G * m1 * m2 / distance2?

?

ActionScript 實(shí)現(xiàn)萬有引力:?
function gravitate(partA:Ball, partB:Ball):void?
{?
var dx:Number = partB.x - partA.x;?
var dy:Number = partB.y - partA.y;?
var distSQ:Number = dx * dx + dy * dy;?
var dist:Number = Math.sqrt(distSQ);?
var force:Number = partA.mass * partB.mass / distSQ;?
var ax:Number = force * dx / dist;?
var ay:Number = force * dy / dist;?
partA.vx += ax / partA.mass;?
partA.vy += ay / partA.mass;?
partB.vx -= ax / partB.mass;?
partB.vy -= ay / partB.mass;?
}?

?

第十四章?
余弦定理?
a2 = b2 + c2 - 2 * b * c * cos A?
b2 = a2 + c2 - 2 * a * c * cos B?
c2 = a2 + b2 - 2 * a * b * cos C?

?

ActionScript 的余弦定理:?
A = Math.acos((b * b + c * c - a * a) / (2 * b * c));?
B = Math.acos((a * a + c * c - b * b) / (2 * a * c));?
C = Math.acos((a * a + b * b - c * c) / (2 * a * b));?

?

第十五章?
基本透視法:?
scale = fl / (fl + zpos);?
sprite.scaleX = sprite.scaleY = scale;?
sprite.alpha = scale; // 可選?
sprite.x = vanishingPointX + xpos * scale;?
sprite.y = vanishingPointY + ypos * scale;?

?

Z 排序:?
// 假設(shè)有一個(gè)帶有 zpos 屬性的 3D 物體的數(shù)組?
objectArray.sortOn("zpos", Array.DESCENDING | Array.NUMERIC);?
for(var i:uint = 0; i < numObjects; i++)?
{?
setChildIndex(objectArray[i], i);?
}?

?

坐標(biāo)旋轉(zhuǎn):?
x1 = cos(angleZ) * xpos - sin(angleZ) * ypos;?
y1 = cos(angleZ) * ypos + sin(angleZ) * xpos;?
x1 = cos(angleY) * xpos - sin(angleY) * zpos;?
z1 = cos(angleY) * zpos + sin(angleY) * xpos;?
y1 = cos(angleX) * ypos - sin(angleX) * zpos;?
z1 = cos(angleX) * zpos + sin(angleX) * ypos;?

?

3D 距離:?
dist = Math.sqrt(dx * dx + dy * dy + dz * dz);?

轉(zhuǎn)載于:https://www.cnblogs.com/liongis/archive/2010/08/10/1796558.html

總結(jié)

以上是生活随笔為你收集整理的flex pv3d 有用公式的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。