Tag:

从* .dot文件中可视化树

我需要通过捕获ANLR点生成器生成的控制台输出来可视化我从ANTLR解析器获取的树并写入.dot文件。 MyDOTTreeGenerator generator = new MyDOTTreeGenerator(); PrintStream old = System.out; try { System.setOut(new PrintStream(new FileOutputStream(graphFile))); } catch (FileNotFoundException e) { e.printStackTrace(); } System.out.println(generator.toDOT(root)); System.out.flush(); System.setOut(old); 问题是: 1.有没有办法可视化我的程序中的.dot文件,例如Swing组件。 2.我已经阅读/尝试使用Grappa库+ Graphviz工具包使用这种方法进行可视化=>有没有一种方法可以将Graphviz工具包打包到我的程序中,这样我就可以在没有最终用户的情况下可视化图形下载和/或安装一些东西。

以A,B的一致速度移动对象

我正在尝试创建自己的原始2D图形游戏引擎。 游戏的核心部分是向敌人发射不同的射弹。 在我继续工作之前,我需要让这个组件工作。 我现在拥有的是沿着穿过起点(x,y)和目标点(x1,x2)的线移动我的射弹。 我使用线性函数y = mx + b 。 问题在于我如何更新射弹的位置会导致不一致的速度,具体取决于线的斜率。 (更大的斜坡使它更快地移开)。 这是我正在运行的游戏循环的核心结构: private void executeGameLoop() { long nextFrameStart = System.nanoTime(); while(panel.getRunning()) { do { panel.update(); nextFrameStart += FRAME_PERIOD; } while(nextFrameStart 0) { try { Thread.sleep(remaining / 1000000); } catch(Throwable e) { System.out.println(e.getMessage()); } } } } 这只是更新结构和图形的机制。 每次调用panel.update ,在特定情况下,射弹会更新其位置。 以下是更新射弹的方法: 这告诉射弹它有一个目标并设置有关该线的信息。 public void setHasTarget(boolean […]

如何删除远离段的点?

我在这里阅读如何保持两点之间的点(即:它是一个段的一部分,有一些不精确): 如何判断一个点是否在某一行附近? 因此,我用Java实现了这个小算法,而我的代码是(注意变量的名称应该对你来说很清楚!:)): List returned = new ArrayList(points_to_test); for(Cupple c : points_to_test) { /*if(c == segment_first_point || c == segment_last_point) { continue; }*/ if(Math.abs(Math.abs( (segment_last_point.getNumber(0) – segment_first_point.getNumber(0)) * (segment_first_point.getNumber(1) – c.getNumber(1)) – (segment_first_point.getNumber(0) – c.getNumber(0)) * (segment_last_point.getNumber(1) – segment_first_point.getNumber(1)) ) / Math.sqrt( Math.pow((segment_last_point.getNumber(0) – segment_first_point.getNumber(0)), 2) + Math.pow((segment_last_point.getNumber(1) – segment_first_point.getNumber(1)), 2) ) ) > maximal_allowed_distance) […]

获取Point对象值的两种方法?

为什么你可以通过使用方法并引用值来从java.awt.Point类中获取x和y值? Point p = new Point(10,20); int x0 = p.getX(); int y0 = p.getY(); int x1 = px; int y1 = py; System.out.println(x0+”==”+x1+”and”+y0+”==”+y1); 制作这门课程的人是否忘记将x和y私有化?

Java:按指定的度数值旋转另一个

我试图在java中围绕另一个具有指定度数值的2D点旋转,在这种情况下简单地围绕点(0,0)在90度。 方法: public void rotateAround(Point center, double angle) { x = center.x + (Math.cos(Math.toRadians(angle)) * (x – center.x) – Math.sin(Math.toRadians(angle)) * (y – center.y)); y = center.y + (Math.sin(Math.toRadians(angle)) * (x – center.x) + Math.cos(Math.toRadians(angle)) * (y – center.y)); } 预期为(3,0):X = 0,Y = -3 返回(3,0):X = 1.8369701987210297E-16,Y = 1.8369701987210297E-16 预期为(0,-10):X = -10,Y = 0 […]

如何在Android中添加2个org.opencv.core.Point对象?

我是OpenCV和Android的新手。 我想将C ++代码转换为java line( img_matches, scene_corners[0] + Point2f( img_object.cols, 0), scene_corners[1] + Point2f( img_object.cols, 0), Scalar(0, 255, 0), 4 ); 这是它的最后一部分。 在这里,我用Core.line替换了一行() 但现在问题是在上面的代码中添加了这两点 。 scene_corners[0] + Point2f( img_object.cols, 0) 我替换了( scene_corners[0],Point2f( img_object.cols, 0) ) scene_corners.get(0),new Point(img_object.cols(),0) 由于两者都是org.opencv.core.Point类型对象,因此不支持这些类型的操作。 任何方式来转换它。 请帮帮我。 先谢谢你。

捕捉指向一条线

我有两个GPS坐标连接在一起形成一条线。 我还有一个GPS点,它靠近线路,但从未完全在线路上。 我的问题是,如何找到沿给定点的最近点?

计算3点(x,y)的曲率

我有一个二维欧几里德空间。 给出了三点。 例如(p2是中间点): Point2D p1 = new Point2D.Double(177, 289); Point2D p2 = new Point2D.Double(178, 290); Point2D p3 = new Point2D.Double(178, 291); 现在我想计算这三个点的曲率 。 double curvature = calculateCurvature(p1, p2, p3); 这个怎么做? 我有一个现有的方法(没有java外部库)? 曲率: https : //en.wikipedia.org/wiki/Curvature Menger Curvature: https : //en.wikipedia.org/wiki/Menger_curvature

计算两点之间的角度 – java

我需要计算两点之间的角度,其中一个固定点通过一条线与给定的两点相连。 这是一张图片,说明了我的需求: 这是我到目前为止所尝试的: public static float GetAngleOfLineBetweenTwoPoints(float x1, float x2, float y1, float y2) { float xDiff = x2 – x1; float yDiff = y2 – y1; return (float) (Math.atan2(yDiff, xDiff) * (180 / Math.PI)); } 毫无意义地说,它没有提供正确的答案。

迭代java中一行/路径上的每个点

我是新手使用迭代器,并想知道如何迭代线段上的每个点(Line2D.Double,确切地说) – 我需要检查线上的每个点是否满足某些要求。 另外,给定一个路径对象(如GeneralPath),你会如何做同样的事情(遍历形状轮廓上的每个点)? 理想情况下,我喜欢这样的东西(有一条线或一条路径): Line2D line = new Line2D.Double(p1,p2); for (Point2D point : line) { point.callSomeMethod(); }