我习惯用PHP编码,但我并不熟悉Java,这已经有一段时间了.我希望它是一个相当简单的解决方案,但是我无法通过任何方式找到任何好的示例代码,所以这里是:
我正在编写一个游戏,它发生在基于图块的地图上的2d随机生成的无限世界中(挑剔:我知道它不会真正无限.我只是期望世界变得非常大).地图的常用方法[X] [Y]多维数组开始了作为一个基本的想法,但由于Java不用于非整数提供了一种方法(即负)阵列关键有心计,如PHP做,我不能正确有( - x,+ x,-y,+ y)带数组键的坐标系.
我需要能够在特定的x,y坐标处找到瓷砖上的对象,以及找到某个瓷砖的"相邻瓷砖".(如果我可以getObjectAt(x,y),我可以获得(x + 1,y)等等)
我读过四棵树和R树等.这个概念很令人兴奋,但我还没有在Java中看到任何好的,简单的示例实现.此外,我不确定这是否是我所需要的.
欢迎任何建议
谢谢
我有一个来自3轴accellerometer(XYZ)的300万个数据点的数组,我想在包含等效球坐标(r,theta,phi)的数组中添加3列.以下代码有效,但似乎太慢了.我怎么能做得更好?
import numpy as np
import math as m
def cart2sph(x,y,z):
XsqPlusYsq = x**2 + y**2
r = m.sqrt(XsqPlusYsq + z**2) # r
elev = m.atan2(z,m.sqrt(XsqPlusYsq)) # theta
az = m.atan2(y,x) # phi
return r, elev, az
def cart2sphA(pts):
return np.array([cart2sph(x,y,z) for x,y,z in pts])
def appendSpherical(xyz):
np.hstack((xyz, cart2sphA(xyz)))
Run Code Online (Sandbox Code Playgroud) 我正在WebGL中构建一个桌面游戏.电路板可以旋转/缩放.我需要一种方法将画布元素(x,y)上的点击转换为3D空间(x,y,z)中的相关点.最终结果是我想知道包含触及最靠近用户的对象的点的(x,y,z)坐标.例如,用户点击一块,你想象一条穿过3D空间的光线穿过这件作品和游戏板,但是我希望这件作品的(x,y,z)坐在它的位置.感动.
我觉得这一定是一个非常普遍的问题,但我似乎无法在谷歌中找到解决方案.必须有某种方法将3D空间的当前视图投影到2D中,这样您就可以将2D空间中的每个点映射到3D空间中的相关点.我希望用户能够将鼠标悬停在板上的空间上,并使点变色.
我需要在画布中找出贝塞尔曲线特定点的Y坐标.你知道吗,如何找到它?谢谢
我从坐标系Y = up,X = right,Z = backwards的传感器数据得到四元数.Mine是X =正向,Y =正确,Z =向上.
所以OX = Y,OY = Z且OZ = -X.
我有一个函数可以将四元数转换为4by4矩阵,但不知道从哪里开始.任何帮助将不胜感激.
我正在编写一个用于可视化晶体的程序.作为程序的一部分,我必须在晶格结构中生成所有不同的基本点.对于那些不熟悉晶体学的人,你可以在这里找到这些结构最常见的例子:https://en.wikipedia.org/wiki/Hermann%E2%80%93Mauguin_notation#Lattice_types
问题是我想跟踪所有这些要点.所以我给了他们一个号码.我正在尝试使用笔和纸,并找到了一个很好的算法,通过以二进制形式写出来将坐标(2D或3D)与数字(以及相反的方式)连接起来.
因此,如果您想要,例如,2D中的简单立方晶格,并且您想知道第14点的坐标,您可以将此二进制数写为001110.您将数字分为00 | 11 | 10,其中最多右边的部分代表(x,y)*1,中间部分代表(x,y)*2,左边的部分代表(x,y)*4(对于数字14来说没用,只是为了制作一切清除)等等.所以数字14映射到点(3,2).
一个简单的C++程序,用于生成前50个int的坐标:
int x, y;
for (int n = 0; n < 50; n++)
{
x = 0;
y = 0;
bitset<16> nset(n);
for (int i = 0; i < 16/2; i++)
{
x+=(nset[2*i]*pow(2.,i));
y+=(nset[2*i+1]*pow(2.,i));
}
cout << n << "\t" << x << "\t" << y << endl;
}
Run Code Online (Sandbox Code Playgroud)
我通过为z值保留一个额外的列将此算法扩展为3D,并通过保留第一个或两个列的类型为x + 1/2,y + 1/2,z + 1 /来扩展其他格子类型2个属性,每种格子类型不同.
所以这是我的问题:这个算法是否已存在?它有名字吗?或者这只是二进制数学的一个明显应用?我读了一些关于hashmaps的东西,但这对我来说似乎更有效,至少如果你处理的是整数.
这是我在stackexchange的第一个问题,怀疑我必须在这里或在物理论坛上发布这个问题.或者也许在数学论坛上,因为这是一种R ^ 2-> R双射.如果这个问题不在正确的地方,请纠正我.
这只是旧问题ggplot2极坐标图箭头的扩展

你会发现x轴不在most_out圆圈之内.在ggplot2中,我使用"panel.grid.major = theme_line(color ="black",size = 0.2,linetype = 2)"得到虚线圆圈,如下所示:
所以我的问题是如何在圆圈外面制作轴标签(180,135,90,.....),因为文本与圆形线合并.
我尝试使用"hjust"或"vjust"来调整文本和轴之间的距离.但它不起作用.所以你对这个问题有一些想法吗?先谢谢!!!!
我目前正在研究将2d地形图保存为一维数组的项目.地图中的每个块都由xy坐标索引.因此,为了将地图保存为一维数组,我使用行主要顺序方法(http://en.wikipedia.org/wiki/Row-major_order)将xy坐标转换为单个索引值(其中让我把块放到一个数组中).
现在,我的问题是如何将其转换回来?我有一个唯一的号码,我必须转换回xy坐标.任何帮助,将不胜感激.^^
我将com.vividsolutions.jts.geom.Coordinate用作我的坐标类.但是找不到任何正确的坐标顺序的文档.它是标准的吗?
这是java doc链接 - > http://www.vividsolutions.com/jts/javadoc/com/vividsolutions/jts/geom/Coordinate.html
我的问题是:什么是x?(是纬度还是经度?)什么是y?(是纬度还是经度?)
任何指导表示赞赏.
更新1 让我补充一下.我正在使用GeoTools Java Library.然后,库正在使用该Coordinate类.GeoTools如何处理Coordinate.x和Coordinate.y?