物理模型建模demo
第一次做物理建模这事,还挺有意思,由于只是demo,没有深入研究下去,所以这个目标也就比较浅显,只是:检测旋转到某1角度不要发生碰撞,不带重力
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | from shapely.geometry import Polygon from shapely import affinity import matplotlib.pyplot as plt def make_car(leftX, leftY, width, height): car_lines = Polygon([(leftX, leftY), (leftX + width, leftY), (leftX + width, leftY + height), (leftX, leftY + height), (leftX, leftY)]) return car_lines def showCar(car): # x, y = car.xy x, y = car.exterior.xy plt.plot(x, y) def showCars(cars): for car in cars: showCar(car) car_width = 4.7 car_height = 2.5 car1 = make_car( 1 , 1 , car_width, car_height) car2 = make_car( 6 , 1 , car_width, car_height) car3 = make_car( 11 , 1 , car_width, car_height) car4 = make_car( 16 , 1 , car_width, car_height) car5 = make_car( 1 , 6 , car_width, car_height) car6 = make_car( 6 , 6 , car_width, car_height) car7 = make_car( 11 , 6 , car_width, car_height) car8 = make_car( 16 , 6 , car_width, car_height) plt.axis( 'equal' ) plt.ion() cars = [car1, car2, car3, car4, car5, car6, car7, car8] showCars(cars) plt.pause( 1 ) for i in range ( 1 , 30 ): plt.cla() rotated_car3 = affinity.rotate(car3, i) showCars([car1, car2, rotated_car3, car4, car5, car6, car7, car8]) #计算是否碰撞 print ( '=======================' , i, '====================' ) cars = [car1, car2, car4, car5, car6, car7, car8] conflict = False for car in cars: if rotated_car3.intersects(car): conflict = True break if conflict: print ( '撞到了,当前旋转角度:' , i) break plt.pause( 0.1 ) plt.ioff() plt.show() |
代码比较简单,用到的有几何库:shapely https://shapely.readthedocs.io/en/stable/manual.html
自省推动进步,视野决定未来。
心怀远大理想。
为了家庭幸福而努力。
商业合作请看此处:https://www.magicube.ai
心怀远大理想。
为了家庭幸福而努力。
商业合作请看此处:https://www.magicube.ai
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】