從粒子系統到群體智慧型 part2

2021-09-13 22:21:43 字數 1171 閱讀 6530

接part1的單執行緒畫線,今天要實現的內容是將part1實現的畫線加上重力和速度的影響,使之符合現實生活

具體的實現形式是讓單執行緒畫出來的線像丟擲乙個小球那樣,會進行墜落

0.001ms

)為間隔,在螢幕上的位置,我們看起來,就是一種連續的感覺。

模擬現實中物理運動狀態,每一時間點上物理的位置,由運動所處的時間點、速度、重力加速度決定。這裡我們採用的公式是尤拉方法

(euler method)

。這個公式的運用就是實現乙個粒子系統的關鍵所在。

位置向量為

、速度向量為

、加速度向量為

我們希望從時間

的狀態,計算下乙個模擬時間

的狀態。

如圖,從a點到b點經過t時間,我們就需要計算出t時間中每乙個點的位置,為了方便向量計算,定義vec2f類,這個類的每乙個物件,代表乙個點;這個點可能是位置、速度或重力,只要給定了起始點,速度,重力三組值,套用如上公式,就可以計算出圖形運動t時間中,每一步的位置

package aline;

public class vec2f

// 向量加

public vec2f add(vec2f v)

// 向量乘

public vec2f multiply(double f)

public void setx(double x)

public void sety(double y)

}

修改之前part1的**,將其***中的actionperformed方法修改如下:

是不是很神奇

可以調節向量類中的引數實現不同的效果!

傳送門:從粒子系統到群體智慧型 part1

從粒子系統到群體智慧型 part4

我們想要實現以下的效果 粒子逐漸變大,而且產生了漂亮的漸變色,並且在撞擊窗體邊緣時產生彈的效果 public int i 2 int x,int y,int size else if y 0 y size 600 else return 0 if i 2 int position.x,int pos...

CCParticleSystem粒子系統

第一次接觸粒子系統,以前遊戲裡面的一些小特效,像製作動畫一樣,是採用一幀一幀的切出來的,由於這種特效,變化無常,切出來的幀,都非常的大,也很耗記憶體,一下就記憶體溢位了.呵呵 主要是以前都沒有接觸過.現在接觸了,以後遊戲就可以用到了.開心 建立乙個ccparticlesystem粒子系統 ccpar...

Unity粒子系統

首次接觸unity的粒子系統,內容太多,搞得都不好寫筆記,所以就記錄下unity的粒子系統做出來的東西以及經常用的一些引數。火焰效果製作 這個相對簡單 建立粒子系統物件 1 調duration 1 開啟loop start size 1 start lifetime 1 start speed 1 ...