Tag:

如何计算两个角度测量值的差异?

如何计算Java中两个角度测量值(以度为单位)的差值,结果是在[0°,180°]范围内? 例如: 350° to 15° = 25° 250° to 190° = 60°

如何检测重叠圆圈并相应填充颜色?

我使用3个数组(x,y和半径大小)创建了5个带有随机x和y坐标和半径的圆。 但是,我需要圆圈根据它们是否与另一个圆重叠来动态改变颜色。 因此,如果5个圆圈中的一个根本不重叠,则应将其涂成黑色。 重叠的圆圈应为青色。 如果它们的中心点之间的距离小于它们的半径之和,则认为两个圆重叠。 这是我到目前为止为圆圈类写的。 以下代码将在applet窗口中成功绘制5个圆,并成功计算距离,但问题在于着色。 颜色填充中似乎存在逻辑错误,我在这里看不到问题。 有什么建议? 非常感谢。 public class Circles extends Applet { public void paint(Graphics page) { Random locator = new Random(); int [] xpt = new int [5]; int [] ypt = new int [5]; int [] rad = new int [5]; setPreferredSize (new Dimension(300, 300)); for (int i = […]

椭圆碰撞检测无法正常工作

所以我正在尝试实现椭圆可以与圆形连接的测试,但它不起作用。 edist = (float) Math.sqrt( Math.pow((px + ((pwidth/2) )) – (bx + (bsize/2)), 2 ) + Math.pow(-((py + ((pwidth/2)) ) – (bx + (bsize/2))), 2 ) ); 这是完整的代码(需要Slick2D): import org.newdawn.slick.AppGameContainer; import org.newdawn.slick.BasicGame; import org.newdawn.slick.Color; import org.newdawn.slick.GameContainer; import org.newdawn.slick.Graphics; import org.newdawn.slick.Input; import org.newdawn.slick.SlickException; public class ColTest extends BasicGame{ float px = 50; float py = 50; […]

圆线交点

public static ArrayList getCircleLineIntersectionPoint(IntPoint pointA, IntPoint pointB, IntPoint center, int radius) { // returns a list of intersection points between a line which passes through given points, // pointA and pointB, and a circle described by given radius and center coordinate double disc, A, B, C, slope, c; double x1, x2, y1, y2; IntPoint point1, […]

JAVA移动和非移动圆的弹性碰撞

我正在尝试编写一个Java移动应用程序(J2ME),我遇到了一个问题:在我的项目中有一些叫做镜头的移动圆圈,以及一个叫做orbs的非移动圆圈。 当射击击中球体时,它应该通过经典的物理定律反弹。 但是我找不到这种算法。 通过轴x和y上的速度(像素/更新)描述镜头的移动。 所有关于圆圈的信息都是已知的:它们的位置,半径和镜头的速度(在轴x和y上)。 注意:在碰撞后,球体不会开始移动,它会保持在原位。 碰撞是两者之间的弹性碰撞,而球体保持静止 这是Shot类中的碰撞解决方法: public void collision(Orb o) { //the orb’s center point Point oc=new Point(o.getTopLeft().x+o.getWidth()/2,o.getTopLeft().y+o.getWidth()/2); //the shot’s center point Point sc=new Point(topLeft.x+width/2,topLeft.y+width/2); //variables vx and vy are the shot’s velocity on axis x and y if(oc.x==sc.x) { vy=-vy; return ; } if(oc.y==sc.y) { vx=-vx; return ; } // o.getWidth() returns […]

与Libgdx的圆和多边形碰撞

在Libgdx中有一种方法可以validation多边形和圆形之间的碰撞吗? 我看到了Intersector类,但只发现了Circle和Rectangle的碰撞测试。 那么其他任何多边形呢? 如果我需要手动完成,使用Libgdx最好的方法是什么?

如何在Java中绘制一个像样的圆圈

我尝试使用drawOval方法具有相同的高度和宽度,但随着直径的增加,圆圈变得更糟。 无论大小如何,我能做些什么才能拥有体面的圆圈。 我将如何在java或其他方法中实现抗锯齿。