制造外力(多個(gè)受力小球)

書(shū)名:代碼本色:用編程模擬自然系統(tǒng)
作者:Daniel Shiffman
譯者:周晗彬
ISBN:978-7-115-36947-5
目錄

2.5 制造外力

3幼驶、示例代碼2-2

  • Mover類
    不同點(diǎn)主要集中在兩個(gè)方面——質(zhì)量和applyForce()函數(shù)的實(shí)現(xiàn)
  • 在數(shù)組中創(chuàng)建100個(gè)Mover對(duì)象希俩。
  • 在setup()函數(shù)中用循環(huán)對(duì)這些對(duì)象進(jìn)行初始化搏色。
  • 在構(gòu)造函數(shù)中添加幾個(gè)參數(shù),讓它變得更靈活。
    物體的質(zhì)量和初始位置就不再是硬性編碼的數(shù)值了烁挟,我們可以通過(guò)構(gòu)造函數(shù)來(lái)確定它們
    ??
Mover[] movers = new Mover[20];

void setup() {
  size(640,360);
  for (int i = 0; i < movers.length; i++) {
    movers[i] = new Mover(random(0.1,4),0,0); 
  }
}

void draw() {
  background(255);
  
  for (int i = 0; i < movers.length; i++) {

    PVector wind = new PVector(0.01,0);
    PVector gravity = new PVector(0,0.1);
    
    movers[i].applyForce(wind);
    movers[i].applyForce(gravity);

    movers[i].update();
    movers[i].display();
    movers[i].checkEdges();
  }

}

mover.pde

class Mover {

  PVector position;
  PVector velocity;
  PVector acceleration;
  float mass;
  color c;

  Mover(float m, float x , float y) {
    mass = m;
    position = new PVector(x,y);
    velocity = new PVector(0,0);
    acceleration = new PVector(0,0);
    c = color(random(255),random(255),random(255));
  }
  
  void applyForce(PVector force) {
    PVector f = PVector.div(force,mass);
    acceleration.add(f);
  }
  
  void update() {
    velocity.add(acceleration);
    position.add(velocity);
    acceleration.mult(0);
  }

  void display() {
    stroke(0);
    strokeWeight(2);
    //fill(0,127);
    fill(c);
    ellipse(position.x,position.y,mass*16,mass*16);
  }

  void checkEdges() {

    if (position.x > width) {
      position.x = width;
      velocity.x *= -1;
    } else if (position.x < 0) {
      velocity.x *= -1;
      position.x = 0;
    }

    if (position.y > height) {
      velocity.y *= -1;
      position.y = height;
    }

  }

}
多個(gè)受力小球

請(qǐng)注意:在上圖中挥转,小圓到達(dá)窗口右側(cè)比大圓更快,這是因?yàn)榧铀俣?力除以質(zhì)量钥组,
質(zhì)量越大输硝,加速度越小。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末程梦,一起剝皮案震驚了整個(gè)濱河市点把,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌屿附,老刑警劉巖郎逃,帶你破解...
    沈念sama閱讀 216,402評(píng)論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異挺份,居然都是意外死亡褒翰,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)匀泊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)优训,“玉大人,你說(shuō)我怎么就攤上這事各聘〈Х牵” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,483評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵躲因,是天一觀的道長(zhǎng)早敬。 經(jīng)常有香客問(wèn)我,道長(zhǎng)大脉,這世上最難降的妖魔是什么搞监? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,165評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮镰矿,結(jié)果婚禮上琐驴,老公的妹妹穿的比我還像新娘。我一直安慰自己衡怀,他們只是感情好棍矛,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,176評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著抛杨,像睡著了一般够委。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上怖现,一...
    開(kāi)封第一講書(shū)人閱讀 51,146評(píng)論 1 297
  • 那天茁帽,我揣著相機(jī)與錄音玉罐,去河邊找鬼。 笑死潘拨,一個(gè)胖子當(dāng)著我的面吹牛吊输,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播铁追,決...
    沈念sama閱讀 40,032評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼季蚂,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了琅束?” 一聲冷哼從身側(cè)響起扭屁,我...
    開(kāi)封第一講書(shū)人閱讀 38,896評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎涩禀,沒(méi)想到半個(gè)月后料滥,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,311評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡艾船,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,536評(píng)論 2 332
  • 正文 我和宋清朗相戀三年葵腹,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片屿岂。...
    茶點(diǎn)故事閱讀 39,696評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡践宴,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出雁社,到底是詐尸還是另有隱情浴井,我是刑警寧澤晒骇,帶...
    沈念sama閱讀 35,413評(píng)論 5 343
  • 正文 年R本政府宣布霉撵,位于F島的核電站,受9級(jí)特大地震影響洪囤,放射性物質(zhì)發(fā)生泄漏徒坡。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,008評(píng)論 3 325
  • 文/蒙蒙 一瘤缩、第九天 我趴在偏房一處隱蔽的房頂上張望喇完。 院中可真熱鬧,春花似錦剥啤、人聲如沸锦溪。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)刻诊。三九已至,卻和暖如春牺丙,著一層夾襖步出監(jiān)牢的瞬間则涯,已是汗流浹背复局。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,815評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留粟判,地道東北人亿昏。 一個(gè)月前我還...
    沈念sama閱讀 47,698評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像档礁,于是被迫代替她去往敵國(guó)和親角钩。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,592評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容