Tag: 坐标

如何使用另一个象限作为坐标在JPanel上绘图?

我想通过覆盖paintComponent在JPanel上绘制一些形状。 我希望能够平移和缩放。 使用AffineTransform和Graphics2D对象上的setTransform方法可以轻松进行平移和缩放。 在做完之后,我可以使用g2.draw(myShape) myShape)绘制形状。形状用“世界坐标”定义,因此在平移时它可以正常工作,我必须在绘制之前将它们转换为canvas/ JPanel坐标。 现在我想改变坐标的象限 。 从JPanel和计算机经常使用的第四象限到用户最熟悉的第一象限。 X是相同的,但是Y轴应该向上而不是向下增加。 通过new Point(origo.x, -origo.y);很容易重新定义origo new Point(origo.x, -origo.y); 但是如何在这个象限中绘制形状? 我想保持形状的坐标(在世界坐标中定义)而不是在canvas坐标中。 所以我需要以某种方式转换它们,或者转换Graphics2D对象,我想有效地做到这一点。 我也可以使用AffineTransform吗? 我的绘图代码: public void paintComponent(Graphics g) { super.paintComponent(g); Graphics2D g2 = (Graphics2D)g; g2.setColor(Color.blue); AffineTransform at = g2.getTransform(); at.translate(-origo.x, -origo.y); at.translate(0, getHeight()); at.scale(1, -1); g2.setTransform(at); g2.drawLine(30, 30, 140, 20); g2.draw(new CubicCurve2D.Double(30, 65, 23, 45, 23, 34, 67, […]

用于在Java中查找DOM元素的绝对位置的代码

我正在开发一个Java项目。 在这个项目中,我必须找到DOM元素的绝对位置。 但我不知道该怎么做。 我在网上搜索,我发现Javascript也一样。 我从这里发现了这个。 代码是这样的 , function getPosition(element) { var xPosition = 0; var yPosition = 0; while(element) { xPosition += (element.offsetLeft – element.scrollLeft + element.clientLeft); yPosition += (element.offsetTop – element.scrollTop + element.clientTop); element = element.offsetParent; } return { x: xPosition, y: yPosition }; } 当我尝试用Java编写此代码时,找不到offsetLeft,offsetTop变量。 你能告诉我,我怎么能用Java编写这段代码? 编辑1号 是否有任何使用Jsoup的方法?

如何为任何给定坐标找到正确的邻居?

更新:这个问题正在寻求如何获得任何给定坐标的一组邻居的指导。 我创建了一个包含坐标的二维数组, int[][] coordinates= { { -1, -1 }, { -1, 0 }, { -1, +1 }, { 0, -1 }, { 0, +1 }, { +1, -1 }, { +1, 0 }, { +1, -1 } }; 如您所知,这些是坐标(0,0)的邻居。 现在我试图实现一个方法,它接受两个参数(int positionX, int positionY) ,并使用输入参数值coordiante(x,y)作为起始坐标,并找到该坐标的所有邻居。 我在考虑这样的事情: int getNearCoordinates(int positionX, int positionY) { for (int[] coordinate: coordinates) […]

围绕中心坐标的顺序坐标 – JAVA

我正在尝试创建一个算法,在这种情况下,它围绕一个特定点排序坐标; 中间点。 我发现: 这篇post,我遇到了这个回复: – Find the center of the “circle,” ie, the average X and average Y – Shift the X and Y values so all are relative to the new center. – Convert to polar coordinates and sort by angle. 由于我对这种算法比较陌生,所以我决定在这里问一下。 上面写的回复对我来说有点意义,但我不知道这是什么意思。 例: Img: 点击打开 如上图所示, (2,2)将是中心(绿点)。 如果有人围绕该中心绘制一个“圆圈”,它将沿着红色方块,它会被命令如下: (0,4) – >(2,4) – >(2,3) […]

从Java中的KML文件中提取坐标

我正在尝试用Java解析Kml文件。 因为我需要获取地标的坐标,在java中生成一个poligon并使用它。 但我的问题是,我正在使用JAK这个库来解析它,而我无法提取我想要的信息。(我在官方页面中阅读了“帮助”,但我没有找到任何帮助解决我的问题) 我正在尝试做类似的事情: final Kml kml = Kml.unmarshal(new File(“C:/Users/A556520/Documents/Proyectos/GeoFencing/res/labasa.kml”)); final Document document = (Document)kml.getFeature(); List listafeatures = document.getFeature(); 但在这一点上我不知道如何提取坐标。 我试图解析的文件就是这个: la basa

计算一个对象是否在一组坐标内?

我有一组X和Y点来构建一个形状,我需要知道一个对象是否在其中,或者它的计算是什么? X和Y坐标示例: 522.56055 2389.885 544.96 2386.3406 554.18616 2369.2385 535.21814 2351.396 497.5552 2355.8396 我对数学并不是很好:(所以我希望得到一些支持,以了解它是如何完成的。 我到目前为止的例子,但似乎不太可靠: private boolean isInsideShape(Zone verifyZone, Position object) { int corners = verifyZone.getCorners(); float[] xCoords = verifyZone.getxCoordinates(); float[] yCoords = verifyZone.getyCoordinates(); float x = object.getX(); float y = object.getY(); float z = object.getZ(); int i, j = corners – 1; boolean inside = […]

如何确定GPS坐标是否位于矩形区域内?

我在Stackoverflow和其他网站上经历了许多类似的问题,我的解决方案基于这些答案,但我仍然无法让它工作…… 我的问题:我想确定某个GPS位置P位于由四个给定的GPS坐标A , B , C , D界定的矩形区域内。 目前我正在计算三角形ABP , BCP , CDP和DAP的面积。 如果这些区域中的任何一个大于零(不要沮丧,数学家),那么这个点就在我的矩形之外。 码: private static double triangleArea(Location a, Location b, Location c) { // (Cx*By-Bx*Cy)-(Cx*Ay-Ax*Cy)+(Bx*Ay-Ax*By) double result = (c.getLongitude()*b.getLatitude()-b.getLongitude()*c.getLatitude())-(c.getLongitude()*a.getLatitude()-a.getLongitude()*c.getLatitude())+(b.getLongitude()*a.getLatitude()-a.getLongitude()*b.getLatitude()); return result; } public static boolean isInsideSquare(Location a, Location b, Location c, Location d, Location p) { if (triangleArea(a,b,p)>0 || triangleArea(b,c,p)>0 || triangleArea(c,d,p)>0 || […]

libgdx坐标系渲染和触摸输入之间的差异

我有一个呈现PNG图像的屏幕(BaseScreen实现了Screen界面)。 点击屏幕后,它会将角色移动到触摸位置(用于测试目的)。 public class DrawingSpriteScreen extends BaseScreen { private Texture _sourceTexture = null; float x = 0, y = 0; @Override public void create() { _sourceTexture = new Texture(Gdx.files.internal(“data/character.png”)); } . . } 在渲染屏幕期间,如果用户触摸屏幕,我抓住触摸的坐标,然后使用这些来渲染角色图像。 @Override public void render(float delta) { if (Gdx.input.justTouched()) { x = Gdx.input.getX(); y = Gdx.input.getY(); } super.getGame().batch.draw(_sourceTexture, x, y); } 问题是从左下角开始绘制图像的坐标(如LibGDX […]

如何删除远离段的点?

我在这里阅读如何保持两点之间的点(即:它是一个段的一部分,有一些不精确): 如何判断一个点是否在某一行附近? 因此,我用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) […]

使用xyz坐标和jzy3d构建三维曲面图

我一直在寻找一种方法将coord(x,y,z)列表发送到jzy3d。 但没有成功。 我发现的唯一方法是使用带有“coord3d”和“tesselator”列表的“构建器”,但它实际上不起作用。 事实上,我不是真正理解Tesselator的意思吗? 这是我试过的代码: public Chart getChart(){ List coordinates = new ArrayList(); for(int i=0; i<200; i++) coordinates.add( new Coord3d(5, 10, 15) ); Tesselator tesselator = new Tesselator() { @Override public AbstractComposite build(float[] x, float[] y, float[] z) { return null; } }; tesselator.build(coordinates); org.jzy3d.plot3d.primitives.Shape surface = (Shape)Builder.build(coordinates, tesselator); /*/ Define a function to plot […]