问题标签 [cartesian-coordinates]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
2401 浏览

c - 在平面上与其他 N 个点的距离最小的线上找到一个点

我有一条线说线 L, lx + my + n = 0。现在,给定一些 K 点说,(x1,y1),(x2, y2)...(xk,yk)是否在线 L 上的 xy 平面上,我想在线 L 上找到一个点,比如 X (x0,y0),使得 X 和“N”点之间的距离之和最小。解决这样一个问题的算法是什么。我想到了一个解决方案,首先我找到点的坐标与每个点的线 L 的垂直线相交(x1,y1),(x2, y2)...(xk,yk)。然后我找到了所有这些点的平均点,其中垂线与线 L 相交以找到最小点。但这样的做法是错误的。请提出解决问题的正确方法。这是我的代码

0 投票
2 回答
2047 浏览

javascript - javascript比较两个坐标对的位置

我有两个坐标对,存储为名为ap1 {x:x, y:y}和的对象ap2 {x:x, y:y}。我正在尝试创建一个 if 语句,以查看它们是否完全符合以下条件之一:

  • 一个是与另一个在任何方向上的一个空间对角线
  • 一个是在另一个之上或之下的一个空间

到目前为止,以下是我的代码:

但是这样一来,正方形的左下角或右上角的一个空格就不会返回 true。我怎样才能按照我想要的方式制作这个功能?这是一张图片:

我尝试了对我的代码的另一种修改,它也不起作用:

0 投票
2 回答
1744 浏览

java - 由笛卡尔坐标给出平面中两点之间的距离

我知道找到距离的公式是什么,但我不明白为什么我的程序不起作用?这是我的代码:

结果不是得到 4.0,而是得到 0.0?!有人可以解释我为什么吗?

0 投票
3 回答
220 浏览

c++ - 使用 std::less 创建一个 std::map 绕原点

介绍

你好!我正在编写一个在非平凡空间中运行的模拟。该系统在中心原点周围占据了不确定的空间。现在,我正在实现一个 xy 点类“Pos”来加入我的坐标并充当我的容器的键(包含有限的数据块)。我希望原点周围的数据在内存中是空间连贯的。

我对这个问题的目标是为 std::less 编写一个专业化,如果将(整数)位置插入到地图中,它们将根据逆时针缠绕顺序进行排序。

我想象细胞:

4 3 2
5 0 1
6 7 8 9

会成为

0, 1, 2, 3, ....

问题

我应该如何围绕写一个 std::less 来思考,这样我就可以像这样总结我的观点?我如何理解解决方案如何遵循严格的弱排序并避免其他陷阱?
最后,您将如何使用 C++11 中可用的工具最好地处理或编写此函数?

(如果使用无序地图并通过围绕动态原点的边界框进行线性迭代对于我的目的来说是一种更加灵活和有效的解决方案,请随意为其编写实现,但我不会将其标记为最佳答案.)


在旁边

我一直在通过实施幼稚的尝试来学习,但我相信通过讨论和合理的解释来解决这个问题比运气更好。

这是上下文的快照。

这是我的第一个问题,我已经尝试遵守规则。如果我做错了什么,请支持,我会尽我所能把事情整理好。谢谢你的支持!

0 投票
1 回答
90 浏览

optimization - 基于角度+反弹的“手榴弹”投影

我在合成高级对象投影公式时遇到了一些麻烦。我已经想出了一些基本的物理模拟公式,例如:

  • 物体的速度 x += cos(angle); y += sin(angle); *可以通过鼠标位置或tan(...目标和初始值)获得角度

但这只根据角度直线行进。

  • 重力 Yvelocity = Yvelocity - gravity; if(!isHitPlatform) { Obj.y += YVelocity }

  • 弹跳// No point if we've not been sized... if (height > 0) { // Are we bouncing... if (bounce) { // Add the vDelta to the yPos // vDelta may be postive or negative, allowing // for both up and down movement... yPos += vDelta; // Add the gravity to the vDelta, this will slow down // the upward movement and speed up the downward movement... // You may wish to place a max speed to this vDelta += gDelta; // If the sprite is not on the ground... if (yPos + SPRITE_HEIGHT >= height) { // Seat the sprite on the ground yPos = height - SPRITE_HEIGHT; // If the re-bound delta is 0 or more then we've stopped // bouncing... if (rbDelta >= 0) { // Stop bouncing... bounce = false; } else { // Add the re-bound degregation delta to the re-bound delta rbDelta += rbDegDelta; // Set the vDelta... vDelta = rbDelta; } } } }

我需要帮助方法来结合这三个公式来创建一个高效且轻量级的算法,该算法允许将对象投射到由角度确定的拱形中,但在停止之前继续反弹几次,所有这些都具有可接受的数量每个点之间的不连续性。*注意:让手榴弹由 af(x) = -x^2 公式确定会随着斜率增加而产生更大的跳跃不连续性,迫使您反转公式以找到 x = +-y 值(以确定是 + 还是 - ,检查边界)。

0 投票
1 回答
412 浏览

c# - 在笛卡尔坐标的单个数组中查找索引

我试图找出一些应该非常简单的东西,但由于某种原因我找不到答案。在过去的几个小时里,我一直在尝试公式。采用网格 10 x 10 的笛卡尔坐标系,因此 0,0 到 10,10。每个坐标都有一个分配给它的浮点数(确定高度),并且它们已被逐行读入 float[] 第一行 (0,0) 到 (10,0) 第二行 (0,1) 到 (10,1 )。现在我想写一个辅助方法,来获取某个笛卡尔坐标fe的高度:(10, 0)。该浮动将驻留在 float[] 中的索引 9 处,而 (0, 1) 将驻留在索引 10 处。我尝试了几次尝试,但每次 (0, 0) 都是顽固的骡子。以下是我尝试过的一些公式。

我曾经尝试过一些更复杂的,但现在不记得了,因为我写下它们的记事本已经关闭而没有保存。如果有人能让我朝着正确的方向前进,我将不胜感激,但请使用简单的数学解释。

0 投票
1 回答
1464 浏览

3d - 将球坐标转换为笛卡尔坐标

我正在尝试将球坐标转换为笛卡尔坐标以绘制简单的 3D 金字塔。

这是获取金字塔四个主要角的代码,具体取决于极角 yrad 和方位角 xrad 以及顶点坐标 x 和 y:

方位角轴似乎工作正常,但问题是,当操纵极角时,左右在它们越过天顶或底部时交换,如下所示(选择顶部的 mp4 以获得更流畅的播放): http: //gyazo.com/4a245713c232893960863cf4ea4186f6

怎么了?

0 投票
2 回答
672 浏览

c++ - 沿球体查找不与具有特定半径的其他球体相交的点的算法

在 3D 笛卡尔空间中,我在 XYZ 有一个半径为 240 的球体(主球体),在该球体内还有许多其他半径为 100 的球体(其他对象)。我需要能够找到沿边界球体边界的点,这些点不与其中的任何其他对象相交。

为简单起见,我们可以说主球体位于 0 0 0 处,半径为 240,内部有大约 33 个对象,每个对象在不同坐标处的半径为 100。

主要是用 Lua 编写,但 C/C++ 也很好。感谢您提供任何帮助,即使只是为我指出如何在数学上解决它的正确方向。

编辑:使用下面 David Eisenstat 提供的链接和信息,这是我正在使用的代码。它/似乎/可以工作,但还没有机会对其进行全面测试。

0 投票
3 回答
222 浏览

algorithm - 旋转椭圆中所有整个纬度/经度交点的最快算法?

我正在为具有平行(但可旋转)投影的 2.5D 游戏开发磁贴引擎。瓦片是平面四边形,其顶点已根据相机位置和 x/y 旋转进行调整和放置。没有偏航(z)。用 Starling 编写引擎。

摄像机的可视区域可以描述为落在任意旋转且任意高的固定宽度椭圆内的网格区域。

我现在想做的是在必须投影它们之前获取落在屏幕空间内的图块列表,而不必根据缩放半径/sin/cos 测试每个坐标集。只要它大于半径,这可能是一个脏集。但我正在寻找最不脏、最优化的解决方案。

0 投票
0 回答
67 浏览

sql - 选择具有多个起点的点周围的单元格

我正在尝试搜索一个二维网格,其中每个单元格由表 mapdata 中的一行表示,如下所示;

我在 x-loc 和 y-loc 上有单独的索引,在我感兴趣的每个属性值上都有单独的索引。要选择一个单元格,我需要检查起点周围单元格中的一些属性我感兴趣的是。

当我知道起点时,我可以这样做(假设起点是 10,10,查询如下;

这将给我一个围绕我的起点 10,10 的单元格的列表,这些单元格具有我感兴趣的属性。

但是,我现在需要扩展它,以便查询也选择了多个可能的起点。例如,我得到了我的潜在起点

我目前已经使用 JDBC 在 java 中实现了这个,它执行第二个查询以选择可能的起点,对于返回的每一行,我执行第一个查询。这是非常非常缓慢的。

我一直在尝试找到将子查询的结果强制放入我的第一个查询的 IN 子句或 BETWEEN 子句的方法,这样对于潜在起点列表,我只返回 x-loc 和 y.loc周围单元格符合指定标准的那些起点。

首先,我正在尝试做的事情真的可能吗?如果是这样,请有人指出我正确的方向。

问候

我现在已经设法得到一些表达我意图的东西

但是,坦率地说,我可以在运行期间重新粉刷西斯廷教堂。一定有更好的方法。