Java简单实现单摆模拟

 2023-09-05 阅读 30 评论 0

摘要:我听说写代码的同时也要发博客,于是就随便发一篇 这些代码并没有体现出java的优越性,大家看着乐呵就好(指不定还会高血压) import java.lang.Math;public class run{public static void init(Box box){box.setStickLength(10);box.setDx(0.001);}

我听说写代码的同时也要发博客,于是就随便发一篇

这些代码并没有体现出java的优越性,大家看着乐呵就好(指不定还会高血压)

import java.lang.Math;public class run{public static void init(Box box){box.setStickLength(10);box.setDx(0.001);}public static void main(String[] args) {Thyta thyta = new Thyta();Box box = new Box();thyta.init(box);init(box);calculator Calculator = new calculator();while (true){Calculator.Task01(box);System.out.println(Math.toDegrees(thyta.getThyta()));}}
}

这段代码是执行用的,run类,会一直输出单摆的角度,StickLength是单摆摆长,Dx是微分变量

public class Thyta extends Box{private static boolean init = false;public static void init(Box Box){init(45, false, Box);}public static void init(double Orin, boolean Radian, Box Box){Box.setThyta(Orin, Radian);init = true;}public static double getThyta(){if (init) {return Box.Thyta();}else{return 114514;}}public static void setThyta(double newThyta){if (init){Box.setThyta(newThyta, true);}else{System.out.println(1145141919);}}public static void setThyta(double newThyta, boolean Radian){Box.setThyta(newThyta, Radian);}
}

这是Thyta类,专门用来init的

import java.lang.Math;public class Box{private static double Thyta;private static double doubleForce;  // 这个是加速度的加速度private static double aForce;  // 正如其名,这个是单摆的加速度private static double arcLength;  // 弧长的意思private static double stickLength;  // 单摆的长度private static double dx$;private static final double g = 9.8065;  // 重力加速度private static boolean lengthAlrSet = false;  // 单摆的长度有没有被设置private static boolean dxAlrSet = false;public static double Thyta(){return Thyta;}public static double doubleForce(){return doubleForce;}public static double aForce(){return aForce;}public static double arcLength(){return arcLength;}public static double stickLength(){return stickLength;}public static double g(){return g;}public static double dx(){return dx$;}public static void setThyta(double newThyta, boolean Radian){if (Radian){Thyta = newThyta;}else{Thyta = Math.toRadians(newThyta);}}public static void setDoubleForce(double newForce){doubleForce = newForce;}public static void setaForce(double newForce){aForce = newForce;}public static void setArcLength(double newLength){arcLength = newLength;}public static void setStickLength(double newLength){if (!lengthAlrSet) {stickLength = newLength;lengthAlrSet = true;}}public static void setDx(double dx){if (!dxAlrSet){dx$ = dx;dxAlrSet = true;}else{System.out.println(114514);}}
}

这是一个集成了所有的变量的Box类,具体怎么做的随便看看就好

import java.lang.Math;public class calculator {public static void Task01(Box Box){Box.setArcLength(Box.stickLength() * Box.Thyta());Box.setDoubleForce(-1 * Box.g() * Math.cos(Box.Thyta()) / Box.stickLength());Box.setaForce(Box.aForce() + Box.doubleForce() * Box.dx());Box.setThyta(Math.toDegrees(Box.Thyta()) + Box.aForce() * 1, false);}
}

这是单摆算法本体

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://808629.com/1442.html

发表评论:

猜你喜欢

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 86后生记录生活 Inc. 保留所有权利。

底部版权信息