- 浏览: 230005 次
- 性别:
- 来自: 常州
文章分类
- 全部博客 (165)
- Java基础 (49)
- 开发工具 (3)
- Python基础 (1)
- Oracle基础 (9)
- Java 符号计算 (0)
- 计算机基本原理 (10)
- SQL (6)
- javascript (16)
- HTML (2)
- XML (4)
- 程序员之路 (7)
- JDBC (1)
- Unicode (0)
- 字符编码 (3)
- JSP基础 (2)
- Servlet&JSP (9)
- MySQL基础 (1)
- UML基础 (1)
- Hibernate (2)
- Java包 (1)
- Spring (1)
- Struts2 (9)
- 系统命令 (1)
- Tomcat (1)
- Windows (1)
- Android (1)
- C#基础 (14)
- HTML5 (1)
- .NET基础 (1)
- 数据库基础 (2)
- ASP.NET基础 (7)
- 开源Java (3)
- 趣味算法 (1)
- 面向对象思想 (1)
- 软件应用 (1)
- Web工程 (1)
- jquery (2)
- JPA (0)
- 设计模式 (0)
最新评论
-
静夜独窗:
JavaBean组件能说的具体一点吗,我感觉这样说理解的不清晰 ...
EL 表达式语言 -
静夜独窗:
在Java中,不同字符集编码的转换是通过Unicode作为中介 ...
JavaWeb中的乱码产生与解决方案
晚上,看完神探夏洛克之后写的。还需要再多研究研究,感觉运行的不是很流畅。毕竟光有物理的概念还是不够的。还需要很多游戏编程与JavaScript方面的知识。
还有我终于知道C++有什么用了。
1.以下代码取出了能量不守恒的bug。之前的bug出现在碰撞处理中。
2.计算方法:精度最差的单步欧拉法。
<html> <head> <script type="text/javascript"> //主方法 window.onload=function(){ var cxt=$("canvas").getContext("2d"); //初始化时间控制器 var timer=new Timer(); //初始化世界控制器 var world=new World(1000,700,100,70,25); //创建一个粒子 var p1=new Particle(1,10,60,20,0); var p2=new Particle(1,50,20,-6,5); var p3=new Particle(1,50,30,4,-7); var p4=new Particle(1,50,40,-8,-15); //在世界中加入粒子 world.addParticle(p1); //world.addParticle(p2); //world.addParticle(p3); //world.addParticle(p4); //事件绑定 $("startbutton").onclick=function(){ var cdt=world.cdt; timer.start(step,cdt); } $("endbutton").onclick=function(){ timer.end(); } function step(){ world.run(); world.view(cxt); } } //世界类 function World(canvas_width,canvas_height,world_width,world_height,fps){ var AllP=new Array(); //粒子容器 var cw=canvas_width; var ch=canvas_height; var ww=world_width; var wh=world_height; var cdt=Math.round(1000/fps);//绘图间隔时间; 单位:毫秒 var dt=cdt/1000; //运动时间 var widthRate=cw/ww; var heightRate=ch/wh; var g=10; //重力加速度 this.addParticle=function(p){ AllP.push(p); } this.run=function(){ for(var i=0;i<AllP.length;i++){ if(AllP[i].r.x<=0 || AllP[i].r.x>=ww){//撞击竖直壁 AllP[i].r.x-=AllP[i].v.x*dt;//x速度反向。y方向继续 AllP[i].v.x=-AllP[i].v.x; AllP[i].r.y+=AllP[i].v.y*dt; continue; } if( AllP[i].r.y<=0 ||AllP[i].r.y>=wh){//撞击水平壁 AllP[i].r.y-=AllP[i].v.y*dt;//y速度反向。x方向继续 AllP[i].v.y=-AllP[i].v.y; AllP[i].r.x+=AllP[i].v.x*dt; continue; } AllP[i].v.y+=g*dt; AllP[i].r.x+=AllP[i].v.x*dt; AllP[i].r.y+=AllP[i].v.y*dt; } } this.view=function(context){ context.clearRect(0,0,cw,ch); for(var i=0;i<AllP.length;i++){ var x=widthRate*AllP[i].r.x; var y=heightRate*AllP[i].r.y; context.beginPath(); context.arc(x,y,2,0,Math.PI*2,true); context.fill(); } } } //粒子类 function Particle(m,x,y,vx,vy){ this.m=m; this.r=new Vector2D(x,y); this.v=new Vector2D(vx,vy); } //定时器类 function Timer(){ var timer=null; this.start=function(fn,time){ if(timer==null){ timer=setInterval(fn,time); } } this.end=function(){ clearInterval(timer); } } //2维向量类 function Vector2D(x,y){ this.x=x; this.y=y; } //================函数====================== //id选择器 function $(id){ return document.getElementById(id); } //[a,b)之间的随机数 function random(a,b){ return Math.random()*(b-a)+a; } </script> </head> <body> <canvas id="canvas" width="1000" height="700" style="border:2px solid red"></canvas><br> <input type="text" id="intext" value="1"><br> <input type="button" id="startbutton" value="开始"> <input type="button" id="endbutton" value="结束"> <input type="text" id="t"> </body> </html>
发表评论
-
jQuery操作iframe
2013-08-15 16:02 0function _getIFrameDocument(i ... -
js获取选中内容
2013-06-07 10:47 2896现在很多网站,特别是比较大的网站,都有这样的功能:选中一 ... -
利用jquery批量下载verycd资源
2013-06-01 22:46 1237verycd不能下载。但是有些资源还是处于发布状态,“下载选 ... -
jquery基础
2013-06-15 19:01 1226jquery代码风格 1.使用 ... -
JQuery Ajax
2012-11-17 22:44 29一直不太喜欢jquery。因为感觉如果jquery用多了,js ... -
ajax与缓存
2012-11-17 22:03 14在使用ajax不断请求服务器的时候可能会因为浏览器缓存而导致无 ... -
JavaScript 打印机 打印页面
2012-10-27 10:20 743打印方法: window.print() 调用该方IE, ... -
My计算库(JS版本)
2012-10-07 15:56 800方矩阵 function SquareMatrix(d ... -
这是什么?
2012-10-07 15:51 0不得不吐槽一下Java的日期处理。太不爽了。 Date ... -
JavaScript:键盘事件
2012-09-28 15:22 6004一. 浏览器的按键事件 浏览器有三种按键事件类型:keyd ... -
2维函数绘图 html5版
2012-09-22 15:58 828<html> <hea ... -
javascript计算24点
2012-08-07 12:44 136524点计算器。 精简版: ... -
正则表达式验证器
2012-07-20 13:54 840javascript写的正则表达式验证器。凑活着用吧。 ... -
Ajax基础
2012-05-16 23:57 1129Ajax,即Asynchronous JavaScrip ... -
<a>的href中放js代码 与 <img> usemap属性
2012-03-31 19:05 927<a>的href属性可以执行javascript代 ... -
google眼睛的实现
2012-03-30 17:07 1199没事写的. js实现眼睛随鼠标运动.就是眼睛一直盯着鼠标看. ... -
javascript获取css盒子模型的一些值
2012-03-28 18:41 1028首先无法用style属性来获取任意元素的的css信息.styl ... -
灵动的JavaScript
2012-04-03 18:17 814JavaScript,弱类型动态脚本语言,浏览器嵌入式语言。简 ... -
小练习javascript
2012-03-21 17:41 986javascript小练习:九九乘法表,金字塔,实心菱形,空心 ...
相关推荐
使用Bullet的简单物理模拟
根据Nehe第39节教程,使用Opengl核心模式下编程实现匀速,平抛,以及弹簧质点运动。代码根据learnopengl的文件配置方式配置,按着来就好了
java写的一个模拟物理运动小球,有反弹的效果
matlab开发-简单物理基础模拟冷藏版本1a。这是一个简单的自由落体模拟。
COMSOL多物理场模拟软件简单入门教程PPT课件.pptx
可以用鼠标控制小球, 模拟重力阻力, 障碍反弹. 代码简单
一个简单的物理模拟冥想放松实验。_CoffeeScript_CS
该项目的作用是使用易于使用的用户界面来模拟简单的曲线和直线运动。 该程序可以用于教育目的,也可以用于任何其他人想要的目的。 可执行文件是.jar文件,这意味着它可以在任何支持Java的操作系统中运行。 在上方,...
主要根据《计算物理学》课程中的笔记,整理出几个物理现象在Mathlab数学软件中的模拟,包括抛物线、粒子散射,二维热传导等等。
VB程序代码物理模拟小球运动可以用鼠标控制小球, 模拟重力阻力, 障碍反弹. 代码简单
C++ os课程设计 连续文件、串联文件、索引文件 有报告 程序很简单
pygame物理学使用Pygame进行简单的物理模拟的Python:3.5+ pygame:pip安装pygame 欧拉积分器使用Euler积分器的弹丸运动质量和弹簧系统Verlet积分器使用Verlet积分器的简单布料模拟
牛顿 Dart的简单物理模拟。 弹簧,摩擦,重力等
初中物理电路实物连接动画模拟 flash 初中物理 电路图实物连线
分子模拟的简单框架,通过C编程模拟分子运动的简单过程。
模拟一个简单二级文件管理系统 设计目的:通过具体的文件存储空间的管理、文件的物理结构、目录结构和文件操作的实现,加深对文件系统内部功能和实现过程的理解。 设计内容:模拟一个简单二级文件管理系统
一个三维刚体物理模拟引擎。 它是完全从头开始用 Java 编写的。 它在各种情况下都非常坚固且物理上准确。 它模拟复杂几何体之间的碰撞,也模拟外力的影响。 使用 JOGL 通过 Drawable 界面包含了一个非常简单的可视...
这是一个模拟一些简单物理现象的小程序,如小桥过河之类的,运行程序时需要把CCBP文件夹包含在头文件。.zip
通过Excel 内置的vba 实现简单的英雄1v1战斗的文字模拟,可以自定义英雄的基础属性,包括: 名称 生命 物理攻击 物理防御 魔法攻击 魔法防御 攻击速度 攻击范围 移动速度 可以打印出每一回合的战斗状态。方便在设计...