标签: cartesian

翻转svg坐标系

有没有办法翻转SVG坐标系,使[0,0]位于左下角而不是左上角?

svg coordinate-systems cartesian

58
推荐指数
4
解决办法
4万
查看次数

将经度/纬度转换为X/Y坐标

我使用Google Maps API创建了一张地图,突出了所有明尼苏达州的县.基本上,我使用一组经度/纬度坐标创建了县多边形.这是生成的地图的屏幕截图: -

在此输入图像描述

用户要求之一是能够将类似的地图作为图像,以便它们可以将其嵌入到PowerPoint /主题幻灯片中.我找不到任何有用的Google Maps API,它允许我按原样保存我的自定义地图(如果你知道一种方式,请告诉我),所以我想我应该用Java中的Graphics2D绘制它.

在阅读了将经度/纬度转换为X/Y坐标的公式后,我最终得到以下代码: -

private static final int    EARTH_RADIUS    = 6371;
private static final double FOCAL_LENGTH    = 500;

...

BufferedImage bi = new BufferedImage(WIDTH, HEIGHT, BufferedImage.TYPE_INT_RGB);
Graphics2D g = bi.createGraphics();

for (Coordinate coordinate : coordinates) {
    double latitude = Double.valueOf(coordinate.getLatitude());
    double longitude = Double.valueOf(coordinate.getLongitude());

    latitude = latitude * Math.PI / 180;
    longitude = longitude * Math.PI / 180;

    double x = EARTH_RADIUS * Math.sin(latitude) * Math.cos(longitude);
    double y = EARTH_RADIUS * Math.sin(latitude) * Math.sin(longitude); …
Run Code Online (Sandbox Code Playgroud)

java google-maps latitude-longitude cartesian coordinate-transformation

38
推荐指数
3
解决办法
5万
查看次数

布置笛卡尔点的算法

我有几个形式的笛卡尔点:(x,y)
其中x和y都是非负整数.

例如
(0,0),(1,1),(0,1)

我需要一种算法来安排上述点
,以便从一个点到另一个点将
x或y改变1.

换句话说,我想避免
对角线移动.

因此,上述点将被安排为:
(0,0),(0,1),(1,1).

类似地,对于(0,0),(1,1),(0,2)
,不存在这样的布置.

我不知道该怎么称呼,
但我称之为曼哈顿订购.

有人可以帮忙吗?

algorithm points cartesian

19
推荐指数
1
解决办法
638
查看次数

用于将网格放置在无序点集上的算法

给定一组大的(数万到数百万)无序点表示为3D笛卡尔向量,用于制作包含所有点的常规方形网格(用户定义的间距)的好算法是什么?一些限制:

  1. 网格需要是正方形和规则的
  2. 我需要能够调整网格间距(其中一个方格的边长),理想情况下是单个变量
  3. 我想要一个最小尺寸的网格,即网格中的每个"块"应至少包含一个无序点,并且每个无序点都应包含在"块"中
  4. 算法的返回值应该是网格点的坐标列表

为了说明2D,给出了这一点:

一套点

对于某些网格间距X,算法的一个可能的返回值将是这些红点的坐标(虚线仅用于说明目的):

网格间距x

对于网格间距X/2,算法的一个可能的返回值是这些红点的坐标(虚线仅用于说明目的):

网格间距x/2

对于任何感兴趣的人来说,我正在使用的无序点是大蛋白分子的原子坐标,就像你可以从.pdb文件中得到的那样.

Python是解决方案的首选,尽管伪代码也很好.

编辑:我认为我对我所需要的第一次描述可能有点模糊,所以我添加了一些约束和图像以澄清事情.

python algorithm vector bioinformatics cartesian

9
推荐指数
2
解决办法
2677
查看次数

笛卡尔坐标到极坐标

看一下这里的例子:http://www.brianhare.com/physics/so.html

看看我在使用这两个主要功能的console.log:

    function distanceBetween2pts(x1, y1, x2, y2) {
        console.log("Particle: ("+x1+","+y1+") Mouse: ("+x2+","+y2+")");
        //  Pythagoras Theorem
        // PQ = sqrt( (x2-x1)^2 + (y2-y1)^2 )
        var x = (x2-x1);
        var y = (y2-y1);

        this.radius = Math.sqrt(x*x + y*y);
        this.x = x;
        this.y = y;
    }

    function polar2cartesian(R, theta) {
        this.x = R * Math.cos(theta);
        this.y= R * Math.sin(theta);
    }
Run Code Online (Sandbox Code Playgroud)

当鼠标位于粒子的上方和右侧(中心圆)时,例如: 在此输入图像描述

控制台日志显示:

Particle: (300,250) Mouse: (326,223)
artan(-27 / 26) = angle: -46.08092418666069 - theta -0.8042638494191191
Run Code Online (Sandbox Code Playgroud)

它应该是arctan(27/26)=角度:46:theta = 0.8.因为即使老鼠在中心"上方",它也会将y2-y1读为-27,因为坐标系统基于左上方的0,0.

那么问题是当X和Y都为负时使θ为正,而它应该指向相反的方向(从中心点向外).我知道我可以在这里做一个180度的技巧,但我想知道我做错了什么.

javascript math geometry cartesian polar-coordinates

9
推荐指数
1
解决办法
9377
查看次数

在性能方面,自然加入比SELECT FROM WHERE更好吗?

可能重复:
内部联接vs其中

今天我和我的项目经理就Cartesian产品进行了辩论.他说'自然连接'比使用'select from where'要好得多,因为后者会导致db引擎在内部执行笛卡尔积,但前者使用另一种方法来阻止这种情况.据我所知,自然连接语法在性能或含义方面与"从哪里选择"没有任何不同,我的意思是你可以根据自己的喜好使用.

SELECT * FROM table1,table2 WHERE table1.id=table2.id
SELECT * FROM table1 NATURAL JOIN table2
Run Code Online (Sandbox Code Playgroud)

请详细说明导致笛卡尔积的第一个查询,但第二个查询更加智能

sql select product cartesian

8
推荐指数
2
解决办法
2万
查看次数

如何将二维椭圆拟合到给定点

我想通过椭圆函数拟合二维数组(x / a)² + (y / b)² = 1 ----> (因此得到 a 和 b)

然后,能够在我的图表上重新绘制它。我在互联网上找到了很多例子,但没有一个有这个简单的笛卡尔方程。我可能搜索得很糟糕!我认为这个问题的基本解决方案可以帮助很多人。

下面是一个数据示例:

在此处输入图片说明

可悲的是,我不能把这些值......所以让我们假设我有一个 X,Y 数组来定义每个点的坐标

numpy cartesian python-2.7

8
推荐指数
2
解决办法
2万
查看次数

使用四元数进行 ENU -> NED 帧转换

我在寻找什么:

\n

将矢量(X,Y,Z)从 ENU 旋转到 NED 的统一方法,反之亦然
\n将四元数从 ENU 旋转到 NED 的统一方法,反之亦然

\n如果可以给出解决方案,我们将不胜感激python,但对我来说更多的是专业知识。

\n

我想我已经知道了

\n

如果我在 ENU 中有这个向量

\n
v_xyz_ENU = [5,2,1] \n
Run Code Online (Sandbox Code Playgroud)\n

翻译为

\n
v_xyz_NED = [2,5,-1]\n
Run Code Online (Sandbox Code Playgroud)\n
\n

ENU <-> NED
\nX, Y, Z <-> Y, X,-Z

\n
\n

如果我在包含 RPY 的向量上使用这种技术(如果这是正确的表达方式),我会感到困惑。

\n
v_rpy_ENU = [0,0,90] \n
Run Code Online (Sandbox Code Playgroud)\n

翻译为

\n
v_rpy_NED = [0,0,-90]\n
Run Code Online (Sandbox Code Playgroud)\n

当我写下计算时,我更喜欢使用以度为单位的角度

\n

这个旋转似乎不正确,因为我知道结果应该是 0\xc2\xb0
\nENU Yaw 0\xc2\xb0 应该是 NED Yaw -90\xc2\xb0
\nENU Yaw 90\xc2\xb0 应该是 NED Yaw 0\xc2 \xb0
\nENU …

python 3d rotation quaternions cartesian

8
推荐指数
1
解决办法
7913
查看次数

快速生成矩阵的笛卡尔积

假设我有一个x包含10行和2列的矩阵.我想生成一个M包含每对唯一行x的新矩阵 - 即一个包含55行和4列的新矩阵.

例如,

x <- matrix (nrow=10, ncol=2, 1:20)

M <- data.frame(matrix(ncol=4, nrow=55))
k <- 1
for (i in 1:nrow(x))
for (j in i:nrow(x))
{
    M[k,] <- unlist(cbind (x[i,], x[j,]))
    k <- k + 1
}
Run Code Online (Sandbox Code Playgroud)

那么,x是:

      [,1] [,2]
 [1,]    1   11
 [2,]    2   12
 [3,]    3   13
 [4,]    4   14
 [5,]    5   15
 [6,]    6   16
 [7,]    7   17
 [8,]    8   18
 [9,]    9   19
[10,]   10   20
Run Code Online (Sandbox Code Playgroud)

然后M …

r matrix cartesian

7
推荐指数
1
解决办法
3313
查看次数

计算2个3D笛卡尔坐标系之间的转换四元数

我有两个具有已知单位向量的笛卡尔坐标系:

系统A(x_A,y_A,z_A)

系统B(x_B,y_B,z_B)

两个系统共享相同的原点(0,0,0).我正在尝试计算四元数,以便系统B中的向量可以在系统A中表示.

我熟悉四元数的数学概念.我已经从这里实现了所需的数学:http://content.gpwiki.org/index.php/OpenGL%3aTutorials%3aUsing_Quaternions_to_represent_rotation

一种可能的解决方案是计算欧拉角并将其用于3个四元数.将它们相乘将导致最后一个,以便我可以转换我的向量:

v(A)= q*v(B)*q_conj

但是,这将再次纳入万向锁,这是不使用欧拉在开始角度的原因.

任何idead如何解决这个问题?

transformation quaternions cartesian

7
推荐指数
2
解决办法
7093
查看次数