自由落体java编程_java模拟自由落体运动源代码

article/2025/1/15 12:43:32

81a21335456c08cfdf97ffb8d7996e16.png

简单做了一个

import java.awt.borderlayout;

import java.awt.button;

import java.awt.color;

import java.awt.frame;

import java.awt.graphics;

import java.awt.panel;

import java.awt.point;

import java.awt.event.actionevent;

import java.awt.event.actionlistener;

import java.awt.event.windowadapter;

import java.awt.event.windowevent;

import java.awt.image.bufferedimage;

import java.util.arraylist;

import java.util.list;

public class myframe extends frame implements runnable,actionlistener{

double x1 = 100,y1 = 0;//a的起始位置

double x2 = 100,y2 = 0;//b的起始位置

double s2 = 26;//b的水平速度

double g = 9.8;//g

long time = 10000;//模拟10秒钟

double py = 1;//y轴比例尺

list list1 = new arraylist();

list list2 = new arraylist();

mpanel p1 = new mpanel();

button b1 = new button("启动");

thread t ;

public myframe(){

b1.addactionlistener(this);

this.add(b1,borderlayout.north);

this.add(p1,borderlayout.center);

this.setsize(800,600);

this.addwindowlistener(new windowadapter(){

public void windowclosing(windowevent e) {

system.exit(0);

}});

this.setvisible(true);

}

public void run(){

list1 = new arraylist();

list2 = new arraylist();

double xx1 = x1,yy1 = y1,xx2 = x2,yy2 = y2;//本时刻位置

long start = system.currenttimemillis();

long end = start;

while(end-start<=time){

end = system.currenttimemillis();

double t = (end - start)/1000.0;

yy1 = (y1 + g*t*t/2)*py;

xx2 = x1 + s2*t;

yy2 = (y2 + g*t*t/2)*py;

int sx1 = (int)xx1;

int sy1 = (int)yy1;

int sx2 = (int)xx2;

int sy2 = (int)yy2;

list1.add(new point(sx1,sy1));

list2.add(new point(sx2,sy2));

p1.repaint();

try {

thread.sleep(50);

} catch (interruptedexception e) {

e.printstacktrace();

}

}

}

public void actionperformed(actionevent e) {

if (t==null||!t.isalive()){

t = new thread(this);

t.start();

}

}

public class mpanel extends panel{

bufferedimage im = new bufferedimage(800,600,bufferedimage.type_int_rgb);

public void paint(graphics gg){

graphics g = im.getgraphics();

g.setcolor(color.white);

g.fillrect(0,0,800,600);

g.setcolor(color.blue);

point ppp1 = null;

point ppp2 = null;

for (int i=0;i

point pp1 = list1.get(i);

point pp2 = list2.get(i);

if (ppp1!=null&&ppp2!=null){

g.drawline(pp1.x,pp1.y,ppp1.x,ppp1.y);

g.drawline(pp2.x,pp2.y,ppp2.x,ppp2.y);

}

ppp1 = pp1;

ppp2 = pp2;

}

if (ppp1!=null&&ppp2!=null){

g.filloval(ppp1.x-5,ppp1.y-5,10,10);

g.filloval(ppp2.x-5,ppp2.y-5,10,10);

}

g.dispose();

gg.drawimage(im,0,0,800,600,p1);

}

}

public static void main(string[] args) {

new myframe();

}

}

◆◆

评论读取中....

请登录后再发表评论!

◆◆

修改失败,请稍后尝试


http://chatgpt.dhexx.cn/article/Zy7v5dCU.shtml

相关文章

点旋转的java算法_点和椭圆(旋转)位置测试:算法

另一种选择是将所有内容都放入2D旋转椭圆的等式中&#xff0c;并查看结果是否小于1 . 因此&#xff0c;如果以下不等式为真&#xff0c;则在椭圆内部有一个点 其中(xp&#xff0c;yp)是点坐标&#xff0c;(x0&#xff0c;y0)是椭圆的中心 . 我实施了一个小的Mathematica程序&am…

(转载)在Eclipse中使用JUnit4进行单元测试(中级篇)

<原文地址如下&#xff1a;http://blog.csdn.net/andycpp/archive/2006/10/09/1327147.aspx> 我们继续对初级篇中的例子进行分析。初级篇中我们使用Eclipse自动生成了一个测试框架&#xff0c;在这篇文章中&#xff0c;我们来仔细分析一下这个测试框架中的每一个细节&…

用Python模拟小球的平抛运动,及其在落地后的运动轨迹

废话不多说&#xff0c;先上效果演示&#xff08;doge&#xff09;: 1、需求分析 给定一个小球&#xff0c;在离地某高度处给予一初始速度&#xff0c;当其撞击到地面后&#xff0c;速度衰减为原来的α倍&#xff0c;当其速度衰减为初始速度的1%后&#xff0c;运动结束。 2、运…

【达内课程】Eclipse中的junit测试

文章目录 简介使用测试1测试2生成测试报告 简介 使用 下载junit 新建一个java项目&#xff0c;把junit jar包放入项目&#xff0c;右键项目&#xff0c;选择properties&#xff0c;把jar包加进来 测试1 创建如下文件 在这里插入代码片如果出错 如果成功 测试2 新建H…

java斜椭圆_JAVA 任意椭圆方向画法

展开全部 使用32313133353236313431303231363533e4b893e5b19e31333332636266 AffineTransform 把Ellipse2D 旋转一下就可以了。 import java.awt.image.BufferedImage; import java.awt.geom.AffineTransform; import java.awt.geom.Ellipse2D; import java.awt.Color; import …

从STL的视角,了解下Map、Set、Tuple和Initializer_List的区别

&#x1f4d6;作者介绍&#xff1a;22级树莓人&#xff08;计算机专业&#xff09;&#xff0c;热爱编程&#xff1c;目前在c&#xff0b;&#xff0b;阶段>——目标Windows&#xff0c;MySQL&#xff0c;Qt&#xff0c;数据结构与算法&#xff0c;Linux&#xff0c;多线程&…

用Java模拟行星的运动

这段时间都在寝室里自学Java,就想自己写个小程序玩一玩。同时&#xff0c;我也是个三体迷&#xff0c;就想着能不能用学的Java来模拟一下三体运动。这个程序算是我正式写模拟三体运动前的一个尝试。 一、程序分析 首先来百度一番查一下太阳、水星、金星和地球的各种参数(非精确…

java课程设计旋转的行星_Java编程实现的模拟行星运动示例

本文实例讲述了Java编程实现的模拟行星运动。分享给大家供大家参考&#xff0c;具体如下&#xff1a; 期待了很久的Java语言程序设计也拉下了帷幕&#xff0c;在几个月的时间里基本掌握了java的简单用法&#xff0c;学习了java的主要基础知识&#xff0c;面向对象思想&#xff…

JS-圆,椭圆等轨迹相关算法

圆 公式 (x0, y0) 圆心坐标 r&#xff1a;半径 x x0 cos(angle) * r y y0 sin(angle) * r 1、轨迹 <div id"div" style"position:relative; width: 20px; height: 20px; background: cadetblue;"></div><script>/*** 圆心 (x0, y0…

精确绘制椭圆

本文首发于微信公众号「3D视觉工坊」。 前言 圆特征在测量领域中应用广泛&#xff0c;比如&#xff1a;相机标定、位姿估计、目标跟踪等方面。圆经过透视投影&#xff0c;当成像平面与圆平面不平行时&#xff0c;圆经过透视投影为椭圆&#xff0c;圆心的透视投影点与椭圆的中…

cesium椭圆编辑椭圆修改(cesium篇.78)

听老人家说:多看美女会长寿 地图之家总目录(订阅之前必须先查看该博客) 完整代码工程包下载 运行如有问题,可“私信”博主。效果如下所示: 下面献上完整代码,代码重要位置会做相应解释 <html lang="en

JS小球绕着椭圆形的轨迹旋转并且近大远小

在ivx中案例如下&#xff1a; VxEditor 效果如下&#xff0c;近大远小 主要代码如下&#xff1a; const centerX 360 / 2; // 椭圆中心的X坐标 const centerY 120 / 2; // 椭圆中心的Y坐标 const a 100; // 长半轴 const b 60; // 短半轴const elementsWithClassName d…

知识图谱实战应用2-知识图谱的知识融合与知识消歧

大家好,我是微学AI,今天给大家带来知识图谱实战应用2-知识图谱的知识融合与知识消歧。 知识图谱是用于表示语义化信息的一种图形化知识表示形式,其中包含了大量的实体、属性和关系。由于知识图谱是由不同来源的知识组成的,因此可能存在同一实体在不同知识源中有不同的表达…

【知识图谱】深入浅出讲解知识图谱(技术、构建、应用)

本文收录于《深入浅出讲解自然语言处理》专栏&#xff0c;此专栏聚焦于自然语言处理领域的各大经典算法&#xff0c;将持续更新&#xff0c;欢迎大家订阅&#xff01;个人主页&#xff1a;有梦想的程序星空个人介绍&#xff1a;小编是人工智能领域硕士&#xff0c;全栈工程师&a…

知识图谱从入门到应用——知识图谱的知识表示:符号表示方法

分类目录&#xff1a;《知识图谱从入门到应用》总目录 相关文章&#xff1a; 知识图谱的知识表示&#xff1a;基础知识 知识图谱的知识表示&#xff1a;符号表示方法 知识图谱的知识表示&#xff1a;向量表示方法 在前面的文章中已经多次提到&#xff0c;知识图谱采用图的方…

《什么是知识图谱?为什么需要知识图谱?知识图谱有什么应用? - 翔哥带你初识知识图谱》

原创实在不易&#xff0c;欢迎大家关注我微信公众号&#xff1a;阳洋up 我本人主要是做知识图谱表示学习研究的&#xff0c;通过读取大量CCF顶会论文以及与导师的交流沟通&#xff0c;逐渐形成了对知识图谱的大的层面上的一些认知&#xff0c;希望在CSDN平台上分享我的一些学习…

知识图谱从入门到应用——知识图谱的知识表示:向量表示方法

分类目录&#xff1a;《知识图谱从入门到应用》总目录 相关文章&#xff1a; 知识图谱的知识表示&#xff1a;基础知识 知识图谱的知识表示&#xff1a;符号表示方法 知识图谱的知识表示&#xff1a;向量表示方法 前文已经介绍过&#xff0c;向量化的表示已经在人工智能的其…

知识图谱|知识图谱的典型应用

作者&#xff1a; cooldream2009 我们构建知识图谱的目的&#xff0c;在于利用知识图谱来做一些事情。有效利用知识图谱&#xff0c;就是要考虑知识图谱的具备的能力&#xff0c;知识图谱具有哪些能力呢&#xff0c;首先我们知道知识图谱包含了海量的数据&#xff0c;是一个超…

知识图谱入门知识(一)知识图谱应用以及常用方法概述

学习内容 搜集各种博客&#xff0c;理解实体识别、关系分类、关系抽取、实体链指、知识推理等&#xff0c;并且总结各种分类中最常用的方法、思路。 由于自己刚刚接触知识图谱&#xff0c;对该领域的概念和方法的描述还不是很清楚&#xff0c;所以只是简单的列出框架和添加链接…

时空知识图谱应用初探

一、时空知识图谱概述 时空知识图谱不单单是一个“增强型”的开放域知识图谱&#xff0c;而是需要结合业务场景和领域知识&#xff0c;并针对时空知识自身的特点&#xff0c;对知识的概念、实体和关系进行语义化和时空化拓展。时空知识图谱除了描述语义关系外&#xff0c;还需要…