- 浏览: 238078 次
- 性别:
- 来自: 常州
文章分类
- 全部博客 (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 2931现在很多网站,特别是比较大的网站,都有这样的功能:选中一 ... -
利用jquery批量下载verycd资源
2013-06-01 22:46 1280verycd不能下载。但是有些资源还是处于发布状态,“下载选 ... -
jquery基础
2013-06-15 19:01 1280jquery代码风格 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 809打印方法: window.print() 调用该方IE, ... -
My计算库(JS版本)
2012-10-07 15:56 849方矩阵 function SquareMatrix(d ... -
这是什么?
2012-10-07 15:51 0不得不吐槽一下Java的日期处理。太不爽了。 Date ... -
JavaScript:键盘事件
2012-09-28 15:22 6075一. 浏览器的按键事件 浏览器有三种按键事件类型:keyd ... -
2维函数绘图 html5版
2012-09-22 15:58 865<html> <hea ... -
javascript计算24点
2012-08-07 12:44 141324点计算器。 精简版: ... -
正则表达式验证器
2012-07-20 13:54 876javascript写的正则表达式验证器。凑活着用吧。 ... -
Ajax基础
2012-05-16 23:57 1171Ajax,即Asynchronous JavaScrip ... -
<a>的href中放js代码 与 <img> usemap属性
2012-03-31 19:05 967<a>的href属性可以执行javascript代 ... -
google眼睛的实现
2012-03-30 17:07 1235没事写的. js实现眼睛随鼠标运动.就是眼睛一直盯着鼠标看. ... -
javascript获取css盒子模型的一些值
2012-03-28 18:41 1074首先无法用style属性来获取任意元素的的css信息.styl ... -
灵动的JavaScript
2012-04-03 18:17 852JavaScript,弱类型动态脚本语言,浏览器嵌入式语言。简 ... -
小练习javascript
2012-03-21 17:41 1025javascript小练习:九九乘法表,金字塔,实心菱形,空心 ...
相关推荐
《使用Bullet进行简单物理模拟》 在游戏开发和模拟领域,物理引擎扮演着至关重要的角色,它们赋予虚拟世界以真实感。Bullet物理引擎就是这样一款强大的开源实时物理模拟库,广泛应用于DirectX等图形API中。本文将...
【物理模拟小资料】是一个关于物理模拟的学习资源集合,涵盖了多个不同的模拟项目和工具,适合对物理引擎感兴趣的初学者和开发者。这个压缩包包含了多种类型的文件,如HTML文档、PDF教程、文本文件以及两个不同版本...
1. **抛物线模拟**:在MATLAB中,我们可以创建一个简单的函数`po`来模拟抛物线运动。这个函数首先定义了初始速度和重力加速度,然后通过循环迭代计算每个时间步长的位置,并更新坐标。`plot`函数用于绘制轨迹,`...
【VB物理模拟小球运动】是一个基于Visual Basic(VB)编程环境开发的程序,它能够实现对小球在各种物理条件下的运动进行仿真。通过这个程序,用户可以使用鼠标进行交互,控制小球的初始位置和速度,观察其在重力、...
标题中的“一个简单的物理模拟冥想放松实验”表明这是一个结合了物理模拟和冥想放松的项目,而“CoffeeScript_CS.zip”则暗示该项目是用CoffeeScript编程语言编写的,并且可能与JavaScript有关,因为CoffeeScript是...
根据Nehe第39节教程,使用Opengl核心模式下编程实现匀速,平抛,以及弹簧质点运动。代码根据learnopengl的文件配置方式配置,按着来就好了
"COMSOL 多物理场模拟软件简单入门教程" COMSOL 是一个功能强大的多物理场模拟软件,适用于各个领域的模拟和分析。本教程旨在为读者提供 COMSOL 的基本概念和使用方法,帮助读者快速入门和掌握 COMSOL 的使用。 一...
《物理沙盒——深入探索简单物理模拟的奥秘》 在计算机科学领域,尤其是游戏开发、动画制作以及教育软件设计中,物理模拟是一项至关重要的技术。"Physical-Sandbox"项目,正如其名,是一个用于实验和学习物理模拟的...
java写的一个模拟物理运动小球,有反弹的效果
OpenGL教程第39课主要讲解了如何在图形编程中实现物理模拟,这是一项重要的技能,因为物理模拟可以为游戏和交互式应用带来更真实的视觉效果和用户体验。在本教程中,我们将深入探讨以下几个关键知识点: 1. **...
最后,模拟法测绘静电场的实验不仅是一次简单的物理实验操作,更是理论与实践相结合的绝佳教学案例。它不仅让学生在操作过程中更加直观地感受到电场的特性,而且通过实验观察和数据处理,学生能够将抽象的物理概念...
### 软件工程中的物理模拟与仿真 #### 第1章 软件工程与物理模拟 ##### 软件工程概述 软件工程是一门综合性的学科,它结合了计算机科学、项目管理以及数学等多个领域的知识和技术,旨在解决大规模软件系统的开发、...
Java简单物理引擎是一款基于Java语言开发的物理引擎,旨在提供简单易用的物理模拟解决方案。该引擎原本是基于FLASH版本的,后来被移植到Java和C++版本,但是Java版本和C++版本存在一定的差异。 APE(Actionscript ...
在本项目"matlab开发-简单物理基础模拟冷藏版本1a"中,主要涉及的是使用MATLAB编程语言来实现一个基础的物理模拟,具体为自由落体运动的模拟。MATLAB是一款强大的数值计算和数据可视化软件,常用于科学研究、工程...
【NEHE 39课:物理模拟——glut框架实现】是NeHe教程系列中的一课,主要讲解如何在OpenGL编程环境中使用glut框架来创建一个基础的物理模拟系统。这个教程面向的是初学者,旨在帮助那些正在学习图形编程和物理模拟的...
该项目的作用是使用易于使用的用户界面来模拟简单的曲线和直线运动。 该程序可以用于教育目的,也可以用于任何其他人想要的目的。 可执行文件是.jar文件,这意味着它可以在任何支持Java的操作系统中运行。 在上方,...
### 物理系统的元胞自动机模拟 #### 元胞自动机的概念与基本原理 元胞自动机(Cellular Automata, CA)是一种数学模型,主要用于模拟复杂系统的行为,特别是那些可以通过局部规则来描述全局行为的系统。在物理学...
4. **时间步长**:通过控制每一帧的时间间隔,确保物理模拟的稳定性。 5. **动量守恒**:在碰撞过程中保持总动量不变,以确保物理行为的真实感。 在"earth"这个子文件中,可能是实现了一个与地球相关的游戏或动画,...
通过阅读和分析这些文件,开发者不仅可以学习到VB6的基础知识,还能了解到游戏开发的基本流程和技巧,包括图形绘制、事件处理和简单物理模拟。同时,这也为进阶学习更复杂的游戏引擎和3D游戏开发打下了基础。
Dart的简单物理模拟。 弹簧,摩擦,重力等" "牛顿"这个库以著名的物理学家艾萨克·牛顿的名字命名,旨在提供一个易于理解和使用的物理模拟框架。库中的核心概念是基于牛顿运动定律,它允许开发者创建出具有真实感的...