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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

小球弹性碰撞

發(fā)布時間:2024/3/26 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 小球弹性碰撞 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

2019獨角獸企業(yè)重金招聘Python工程師標準>>>

小球彈性碰撞

基于webGL的小球彈性碰撞demo

代碼地址:https://github.com/wisdomofgod/ball_elastic_collision/

演示地址:http://htmlpreview.github.io/?https://github.com/wisdomofgod/ball_elastic_collision/blob/master/index.html

小球彈性碰撞

  • 小球設置?:小球位置,速度,角度由random函數(shù)生成,其中角度由x,y軸速度控制;
  • 小球顏色?:小球顏色由小球所在位置計算得出,色值 = 小球位置 * 0.5, 同時增加由圓心向外的漸變效果;
  • 小球碰撞?:小球碰撞有小球撞擊墻壁與撞擊其他小球兩種情況,有兩個撞擊的彈性參數(shù)決定反彈力。?

片段著色器

在頂點著色器中,設置v_color = gl_Position * 0.5; 在片段著色器中,首先因為我們要畫圓球,所以判斷一下當前插值的點跟球心的距離,插值的時候,是按方形進行插值的,我們只對距離小于等于半徑的點進行著色, 如果距離小于半徑,則設置顏色色值為 v_color + d - 0.2;(為了實現(xiàn)從圓心到邊緣的顏色漸變)

代碼塊

<script id="2d-fragment-shader" type="x-shader/x-fragment">precision mediump float;varying vec4 v_color;void main() {gl_FragColor = v_color;float d = distance(gl_PointCoord, vec2(0.5,0.5));if (d < 0.5) {vec4 color = v_color + d - 0.2;gl_FragColor = color;} else { discard;}}</script>

小球撞擊墻體

小球撞擊墻壁,在move函數(shù)中進行判斷,如果撞擊墻壁,則將撞擊方向的速度 v * bounce (撞擊墻壁彈性)

代碼塊

this.balls.forEach(a => {a.x += a.vx;a.y += a.vy;if (a.x > this.R) {a.x = this.R;a.vx *= this.bounce;}if (a.x < this.L) {a.x = this.L;a.vx *= this.bounce;}if (a.y > this.T) {a.y = this.T;a.vy *= this.bounce;}if (a.y < this.B) {a.y = this.B;a.vy *= this.bounce;}});

小球之間碰撞

首先通過兩個小球之間的距離,如果距離小于等于小球直徑,則兩小球疊加 小球發(fā)生疊加時,由兩小球坐標計算出兩個小球之間的夾角。 通過夾角計算出,要將兩小球分開的最短距離, 這一距離乘以小球間的彈性,得到小球分開的反向加速度。 將反向加速度加上小球的原有x,y軸速度。 由于速度值大于反向加速度值,所以小球將繼續(xù)往里擠壓直到速度方向與加速度方向一致后,加速分離。因此可以產生擠壓彈開效果。

代碼塊

if (dist <= this.misDist) {//碰撞var angle, tx, ty, ax, ay;angle = Math.atan2(dy, dx);tx = ballA.x + Math.cos(angle) * this.misDist;ty = ballA.y + Math.sin(angle) * this.misDist;ax = (tx - ballB.x) * this.spring;ay = (ty - ballB.y) * this.spring;ballA.vx -= ax;ballA.vy -= ay;ballB.vx += ax;ballB.vy += ay;}

轉載于:https://my.oschina.net/wisdomofgod/blog/1626559

總結

以上是生活随笔為你收集整理的小球弹性碰撞的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 少妇av在线 | 91av在线免费 | 岛国av免费观看 | 国产日比视频 | 麻豆精品在线视频 | 91精品视频在线免费观看 | 国产高清黄色 | www黄色在线观看 | 精品人成 | 性猛交╳xxx乱大交 偷偷操不一样的久久 | 黄色网址在线视频 | 日韩www.| 99re8在线精品视频免费播放 | 欧美理论在线观看 | 国产95在线 | 无码人妻久久一区二区三区不卡 | 一区二区三区免费观看 | 久久草视频在线 | 亚洲精品福利在线观看 | 欧美一级免费在线 | 特级做a爰片毛片免费69 | 久久爱一区 | 日日噜噜噜噜人人爽亚洲精品 | 国产一二三区免费视频 | 日韩一道本 | 亚洲精品成av人片天堂无码 | 视频国产一区 | 最新av | 99热免费在线观看 | 风间ゆみ大战黑人 | 国产精品毛片一区二区三区 | 精品人妻一区二区三区四区不卡 | 日本日韩欧美 | 高清在线一区 | 欧美成人aaaa | 日本欧美一级片 | 台湾男男gay做爽爽的视频 | 免费看91的网站 | 久久视奸 | 亚洲视频第一页 | av中文资源在线 | 亚洲免费在线视频 | 国产精品18久久久久久无码 | 成人在线观看免费爱爱 | 成人午夜在线播放 | 综合网视频 | 不卡在线一区二区 | 日皮毛片 | 91国内在线视频 | 成人在线免费看视频 | www.桃色 | 黄页网站在线看 | 麻豆av免费在线 | 91精品人妻一区二区三区蜜桃欧美 | 欧美精品亚洲精品 | 人人搞人人插 | 久青草国产在线 | 日本电影一区二区三区 | 日韩免费一二三区 | 久久国产99| 国产午夜在线播放 | 亚洲熟妇无码另类久久久 | 色播导航| wwwxx日本 | 国产人妻精品一区二区三区 | 美女又大又黄 | 日本一级免费视频 | 国产最新精品 | 18成人免费观看网站下载 | 国产精品6666| 国产精品毛片一区视频播 | 久久久久久网址 | 好吊妞视频一区二区三区 | jizz少妇| 免费观看国产视频 | 女人叫床很黄很污句子 | 青娱乐在线免费视频 | 97超碰人人看 | 日本a级c片免费看三区 | 好吊色这里只有精品 | 成人影 | 特黄aaaaaaaaa毛片免费视频 | 可以免费看av | 三级黄色在线 | 久久久999精品视频 国产在线xx | 国产成人麻豆免费观看 | 亚洲在线观看免费视频 | 美女免费毛片 | 精品人妻一区二区三区日产 | 国产日日操 | 人妻少妇偷人精品久久久任期 | 亚洲第一成人网站 | 日韩精品一区二区三区视频在线观看 | 强开小嫩苞一区二区三区网站 | 一本一道av | www.激情五月.com | 黄网址在线观看 | 欧美亚洲自拍偷拍 | 色婷婷色婷婷 |