Tag: math

ECEF到lla(lat,lon,alt)在java中

我查看了网站上的post,但没有发现我的问题…正如头条说我试图从ecef转换为lla。 我正在使用此文档:直接公式中的转换文章 ,而不是迭代公式和此站点进行结果比较: ECEF2LLA 我在java中开发所以我的代码如下: public static final double a = 6378137; public static final double f = 1/298.257223563; public static final double b = a*(1-f); public static final double e = Math.sqrt((Math.pow(a, 2)-Math.pow(b, 2))/Math.pow(a, 2)); public static final double e2 = Math.sqrt((Math.pow(a, 2)-Math.pow(b, 2))/Math.pow(b, 2)); public static double[] ecef2lla(double x , double y , […]

BigIntegers对BigIntegers的力量

我正在尝试使用BigInteger类在Java中实现Fermat,Miller-Rabin或AKS算法。 我认为我已经实现了Fermat测试,只是BigInteger类不允许将BigIntegers带入BigIntegers的强大function(人们只能将BigIntegers带入原始int的强大function)。 有没有解决的办法? 有问题的行在我的代码中表示: public static boolean fermatPrimalityTest(BigInteger n) { BigInteger a; Random rand = new Random(); int maxIterations = 100000; for (int i = 0; i < maxIterations; i++) { a = new BigInteger(2048, rand); // PROBLEM WITH a.pow(n) BECAUSE n IS NOT A BigInteger boolean test = ((a.pow(n)).minus(BigInteger.ONE)).equals((BigInteger.ONE).mod(n)); if (!test) return false; } […]

在javaFX中显示数学公式

我想知道如何在JavaFX中的标签中显示数学公式。 喜欢这张图片: 我想要一个库的.jar和JavaFX中的一个小例子。 我已经找到了一些库,但它们只适用于Swing / AWT。 我尝试了其中一些,但它们对我不起作用。 用Java显示花式方程式

大量点的贝塞尔曲线近似

我有大约一百点,我想用贝塞尔曲线近似,但如果有超过25点(或类似的东西),组合数量的因子计数导致数字溢出。 有没有一种方法能够以类似Bezier的方式逼近这样的点数(平滑曲线没有通过所有点,除了第一个和最后一个)? 或者我是否需要选择具有相同效果的另一种近似算法? 我正在使用默认的摆动绘图工具。 PS英语对我来说不是原生的,所以我可能在某处使用了错误的数学术语。

Java中的微分方程

我试图在java中创建一个简单的SIR-epidemics模型模拟程序。 基本上,SIR由三个微分方程组定义: S’(t)= – l(t)* S(t) I’(t)= l(t)* S(t) – g(t)* I(t) R’(t)= g(t)* I(t) S – 易感人群,我 – 感染了人,R – 恢复了人。 l(t)= [c * x * I(t)] / N(T) c – 接触次数,x – 感染性(与病人接触后生病的概率),N(t) – 总人口(不变)。 如何在Java中解决这些微分方程? 我不认为我知道有任何有用的方法,所以我的实现会产生垃圾。 public class Main { public static void main(String[] args) { int tppl = 100; double sppl […]

使用幂方法计算Java中的第n个根

我试图使用Math.pow(n, 1.0/3)在java中获得立方根Math.pow(n, 1.0/3)但因为它除了双精度数,所以它不会返回确切的答案。 例如,对于125,这给出了4.9999999999。 有解决办法吗? 我知道有一个立方根函数但我想解决这个问题,所以我可以计算更高的根。 我不想舍入,因为我想知道一个数字是否具有整数根,通过这样做: Math.pow(n, 1.0 / 3) % ((int) Math.pow(n, 1.0 / 3)) 。

BigDecimal movePointRight和scaleByPowerOfTen有什么区别?

使用以下代码: BigDecimal x = new BigDecimal(“34.5678”); BigDecimal a = x.movePointRight(3); BigDecimal b = x.scaleByPowerOfTen(3); BigDecimal c = x.movePointRight(-3); BigDecimal d = x.scaleByPowerOfTen(-3); a和b均为34567.8,c和d均为0.0345678。 a.scale()和b.scale都是1, c.scale()和d.scale()都是7。 这两种方法在什么情况下产生不同的结果?

Scala和Java BigDecimal

我想在我的应用程序中从Java切换到基于Math的模块的脚本语言。 这是由于Java的可读性和function限制。 例如,在Java中我有这个: BigDecimal x = new BigDecimal(“1.1”); BigDecimal y = new BigDecimal(“1.1”); BigDecimal z = x.multiply(y.exp(new BigDecimal(“2”)); 如您所见,如果没有BigDecimal运算符重载,简单的公式会很快变得复杂。 有了双打,看起来很好,但我需要精确度。 我希望Scala能做到这一点: var x = 1.1; var y = 0.1; print(x + y); 默认情况下,我会得到类似十进制的行为,唉,Scala默认情况下不使用十进制计算。 然后我在Scala中这样做: var x = BigDecimal(1.1); var y = BigDecimal(0.1); println(x + y); 我仍然得到一个不精确的结果。 在Scala中有什么我没做的吗? 也许我应该使用Groovy来最大化可读性(它默认使用小数)?

LibGDX – 正确使用Polygon类

我创建了Polygon对象来包裹我的飞机(飞机的TextureRegion大小是256×74,但是这个游戏的大小是70×20)。 所以: TextureRegion[] texRegsAirplane = TextureRegion.split(textureAirplane, 256, 74); Rectangle bounds = new Rectangle(0, 0, 70, 20); Polygon polygon = new Polygon(new float[]{0,0,bounds.width,0,bounds.width,bounds.height,0,bounds.height,0,0}); 在我的updatefunction之后,我update它的位置: public void update(float delta){ Vector2 v = getPosition(); v.add(velocity); polygon.setPosition(vx, vy); } 然后我渲染多边形以了解它的位置: public void render(SpriteBatch spriteBatch, float pixelPerUnitX, float pixelPerUnitY){ spriteBatch.draw(testTexture,polygon.getX()*pixelPerUnitX, polygon.getY()*pixelPerUnitY, polygon.getBoundingRectangle().width*pixelPerUnitX,polygon.getBoundingRectangle().height*pixelPerUnitY); } 最后,我创建了2架飞机,让它们相互飞行,每次迭代我都会尝试检测碰撞,如下所示: public void detectCollision(){ for(Airplane airplane1 : […]

如何实现FPS相机?

所以我目前正在开发OpenGL中的一些FPS游戏编程(JOGL,更具体地说)只是为了好玩,我想知道创建类似FPS的摄像头的推荐方法是什么? 目前我基本上有一个玩家面向方向的矢量,按下“w”或前进键后,它将被添加到当前玩家位置。 该向量的负数当然用于“s”或后向键。 对于“a”,left和“d”,右边我使用方向向量的法线。 (我知道这会让玩家飞起来,但这不是问题) 移动鼠标后,将使用三角学和矩阵旋转方向向量。 当然,所有矢量都被标准化以便于速度控制。 这是常见的和/或好的方式还是更容易/更好的方式?