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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

制作简单的2D物理引擎(零)

發(fā)布時(shí)間:2024/8/26 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 制作简单的2D物理引擎(零) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

最近發(fā)現(xiàn)了Github上的開源物理引擎項(xiàng)目Matter.js,對(duì)它很感興趣,發(fā)現(xiàn)源碼并不算長(zhǎng),算上注釋大約1萬行左右,值得剖析一番。Matter.js實(shí)現(xiàn)一個(gè)最小化的2D物理引擎,性能不錯(cuò),故打算用C#重寫并學(xué)習(xí)之。

由于JS是弱類型,而C#是強(qiáng)類型的,所以不得不還原相應(yīng)的類型。在重寫過程中,我也發(fā)現(xiàn)了源碼中的一些問題,以及代碼冗余,不過都無關(guān)緊要。在一萬行之內(nèi)實(shí)現(xiàn)一個(gè)簡(jiǎn)單的物理引擎本來就很令人激動(dòng)了,這樣可以以最小的工作量來熟悉物理引擎。

重寫過程中,渲染用自帶GDI實(shí)現(xiàn),所以只需考慮物理引擎中的代碼邏輯即可。因需要最簡(jiǎn)化代碼,故有些內(nèi)容如Sleep等就略過了,只考慮核心部分,即力的仿真和碰撞檢測(cè)。

最終,我們的物理引擎有下列幾個(gè)部分:

  • 幾何體樹
  • 物理學(xué)意義上的基本對(duì)象(如點(diǎn)、點(diǎn)集、邊界等)
  • 簡(jiǎn)單的碰撞檢測(cè)(寬、窄)
  • 位置修正
  • 速度修正

代碼在Github上:https://github.com/bajdcc/PhysicsEngine

不過,在這之前,需要好好復(fù)習(xí)一下牛頓力學(xué),包括平動(dòng)和轉(zhuǎn)動(dòng)。

本章為目錄,將不斷更新。

  • 第一章——?jiǎng)恿W(xué)基礎(chǔ)

轉(zhuǎn)載于:https://www.cnblogs.com/bajdcc/p/5925837.html

總結(jié)

以上是生活随笔為你收集整理的制作简单的2D物理引擎(零)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

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