在设备方向改变后,触摸坐标的翻译出现问题
好的情况是,我有一个自定义类,该类别创建包含图像的视图并处理所有自己的触摸事件.有时我想检查它是否会导致其在父视图上重叠另一个视图.因此,在相关的触摸事件之后,我调用父视图上的方法将其传递给最后一个触摸绳层并返回布尔.当应用程序保持肖像方向时,这正常工作. 问题是在旋转设备后,所有图像都是自动旋转的,我与父视图相比,现在传递的cgpoint在旋转的坐标系中,而cgrectcontainspoint方法被调用不再正常工作. > . 在我的Willanimatimatation Tointerfaceorientation方法中,我正在调整每个自定义视图的位置,以改善新方向的布局,例如. view.frame = CGRectMake((view.frame.origin.x*1.5),(view.frame.origin.y/1.5),view.frame.size.width,view.frame.size.height); 我读到调用setBound方法然后将重置
10 2023-06-03
编程技术问答社区
马吉维克在iOS上的传感器融合算法
我正在尝试运行,但看来该算法期望在不同的坐标系中的传感器测量值. Apple Coremotion传感器系统在右侧给出,Madgewick在左侧.这是不同的坐标系统的图片.这两个系统都遵循右手规则. 对我来说,似乎围绕Z轴旋转了90度.但这无效. 我还尝试翻转x和y(和倒置z)轴,如 此外,我正在寻找iPhone上 betadef 的良好工作价值. betadef 是比例增益,目前设置为0.1f. 关于如何实现目标的任何帮助将不胜感激. 解决方案 我不确定如何在目标C中写下此内容,但这是我完成香草c中的坐标转换的方式.我还想旋转方向,以便 +y向北.此翻译也反映在以下方法中. 此方法期望以WXYZ的形式使用4个元素四分法,并以相同格式返回翻译的四元素: void madgeq_to_openglq(float *fMadgQ, float *fRetQ) { float fTmpQ[4]; // Rotate around Z-axis, 90
0 2023-06-03
编程技术问答社区
将CLRegion转换为MKMapRect或类似产品
我想将一个隔离区(中心和半径)转换为两个坐标(左上,右上,右上). 我已经看到了这个答案,但是这是不合适的: 将mkcoordinateregion转换为mkmaprect 我之所以有围栏是因为它是正向地理位置的输出. 我需要两个纬度/经度点来查询数据库(因此不能使用cligion containsCoorceordice). 解决方案 swift 3示例 let searchRequest = MKLocalSearchRequest(completion: searchCompleter.results[indexPath.row]) let search = MKLocalSearch(request: searchRequest) search.start { [weak self] response, error in guard let region = response?.mapItems.first?.placemark.regio
4 2023-06-02
编程技术问答社区
如何将一个新点投射到PCA的新基础上?
例如,我有9个变量和362个情况.我已经进行了PCA计算,发现前3个PCA坐标对我来说足够了. 现在,我在9维结构中有了新的观点,我想将其投影到主组件系统坐标.如何获得新的坐标? %# here is data (362x9) load SomeData [W, Y] = pca(data, 'VariableWeights', 'variance', 'Centered', true); %# orthonormal coefficient matrix W = diag(std(data))\W; % Getting mean and weights of data (for future data) [data, mu, sigma] = zscore(data); sigma(sigma==0) = 1; %# New point in original 9dim system %# For example, it is the first point of
0 2023-05-21
编程技术问答社区
GeoPandas .to_crs()方法无法转换
我试图将一些数据集转换为同一坐标系(NC2264) NC2264 = 'EPSG:2264' sfd_subs = pd.read_csv(r'FILE_LOCATION.csv') wake_shapes = gpd.GeoDataFrame.from_file(r'FILE_LOCATION.shp').to_crs(NC2264) sfd_subs = gpd.GeoDataFrame(sfd_subs, geometry=gpd.points_from_xy(sfd_subs.Longitude, sfd_subs.Latitude),crs='EPSG:4326') sfd_subs.to_crs(NC2264) print(sfd_subs.crs) shapefile转换效果很好,但" sfd_subs"保持不变.我没有错误. 我在顶部与底部的不变转换中包括了5个正确的转换. EPSG:4326 0 POINT (2641914.20
2 2023-05-18
编程技术问答社区
将带有度分秒(DMS)坐标的pandas数据框转换为十进制度数
i具有下面的data frame,并希望以程度,分钟,第二格式为Latitude和Longitude列转换为十进制程度 - 对于正确的半球,为负.有一个简单的方法吗? Parent Company CPO PKO Latitude Longitude Incasi Raya X 0°51'56.29"S 101°26'46.29"E Incasi Raya X 1°23'39.29"S 101°35'30.45"E Incasi Raya X 0°19'56.63"N 99°22'56.36"E Incasi Raya X 0°21'45.91"N 99°37'59.68"E Incasi Raya X 1°41'6.56"S 102°14'7.68"E Incasi Raya X 1°15'2.13"S 101°34'30.38"E Incasi Raya X 2°
0 2023-05-17
编程技术问答社区
p5.j​​s中的网格中旋转对象
我正在尝试使用体面的OOP方法使对象在网格的单元格中单独旋转.我目前的结果是在0、0参考点旋转所有对象,而不是在其自己的单元格中旋转每个对象. 当然,需要的是正确的翻译函数,但是当我尝试在InnerSquare函数翻译(x,y)中应用此功能时; - 这导致了更奇怪的行为. 我仍在早期学习 - 任何帮助都将不胜感激! 可以在此处查看代码: > 或直接: var cols, rows; var w = 50; var grid = []; function setup() { createCanvas(400, 400); // load the col / row vars with values that dynamically read from the canvas. cols = floor(width/w); rows = floor(height/w); // load the the array with ge
4 2023-05-16
编程技术问答社区
python openGL:翻译三角形(全局和局部)而不使用openGL函数
我试图不用openGL功能翻译三角形,例如gltranslate*()或glscale*(). 我的渲染代码是: def render(T): glClear(GL_COLOR_BUFFER_BIT) glLoadIdentity() # draw coordinate glBegin(GL_LINES) glColor3ub(255, 0, 0) glVertex2fv(np.array([0., 0.])) glVertex2fv(np.array([1., 0.])) glColor3ub(0, 255, 0) glVertex2fv(np.array([0., 0.])) glVertex2fv(np.array([0., 1.])) glEnd() #draw triangle glBegin(GL_TRIANGLES) glColor3ub(255,25
8 2023-05-15
编程技术问答社区
OSM: 将球面重合器中的投影坐标 "EPSG:900913 "转换为 "EPSG:4326 "坐标的纽带
我使用的是带有一层的地图(来自示例): var lonLat = new OpenLayers.LonLat(40.4088576, -86.8576718) .transform( new OpenLayers.Projection("EPSG:4326"), // transform from WGS 1984 map.getProjectionObject() // to Spherical Mercator Projection ); 在Moveend上,我得到了中心坐标: map.getCenter(); map.getZoom(); 和变焦级别:4925535.4503328,-9668990.0134335,12 使用文档中的算法 public PointF TileToWorldPos(double
4 2023-05-11
编程技术问答社区
Angular ng如果不使用剃刀语法,就无法工作
我正在使用Angular-Openlayers指导来构建我的项目. 我试图重写 geojson部分是因为我会动态获取点信息.因此,我将Geojson的源部分放到了内部,而不是从JSON文件中加载.但是,我的代码位置完全不同. 结果假设在设置该坐标处显示一个点.但是点就像[0,0].如果我将使用JSON文件的加载更改为使用,那将有效. 我不知道为什么坐标会这么多.如果有人知道原因,请告诉我!我会很感激. 以下是我的代码: source: { type: "GeoJSON", projection: 'EPSG:4326', geojson: { object: { type: "FeatureCollection", features: [{
0 2023-05-11
编程技术问答社区
安卓OpenGL ES 2.0屏幕坐标转换为世界坐标
我正在构建一个使用OpenGL ES 2.0的Android应用程序,并且我遇到了墙壁.我正在尝试将屏幕坐标(用户触摸)转换为世界坐标.我已经尝试阅读和玩Glu.gluunproject,但我要么做错了,要么只是不了解. 这是我的尝试.... public void getWorldFromScreen(float x, float y) { int viewport[] = { 0, 0, width , height}; float startY = ((float) (height) - y); float[] near = { 0.0f, 0.0f, 0.0f, 0.0f }; float[] far = { 0.0f, 0.0f, 0.0f, 0.0f }; float[] mv = new float[16]; Matrix.multiplyMM(mv, 0, mViewMatrix, 0, mModelMatr
4 2023-05-11
编程技术问答社区
如何将2D显示坐标映射到3D OpenGL空间
我正在制作一个3D游戏,该游戏已在Android上移植,我想在游戏的3D课程中进行触摸事件.我需要在3D空间中,就在剪裁平面附近,但我所能获得的只是来自Android显示器的2D坐标.因此,有什么方法可以将这些(x,y)坐标映射到3D空间中的(x,y,z)坐标? 编辑 好吧,我正在从事赛车游戏,我想根据我单击的位置将一些项目插入课程.我有这个功能: void racing_mouse_cb(int button, int state, int x, int y) { //parameters (x,y) are coords of a display set_ill_fish(get_player_data( local_player())->view); } 但现在我在一定距离的玩家面前插入物品: void set_ill_fish(view_t view) { item_locs[num_items].ray.pt.x = view.ply
6 2023-05-11
编程技术问答社区
OpenCV、OpenGL和Android传感器之间的参考坐标系变化
我正在与 OpenCV , Android 和 OpenGl 用于增强现实项目.据我所知,OpenGL中的坐标系统是 OPENCV坐标系是: 将这些设备与Android传感器相结合时,如何进行坐标系转换和[R | T]矩阵转换?是否有一个好的教程或文档来解释所有这些conflo的东西? 解决方案 如果您查看图片,那么您会发现,两个坐标系都有相同的手,但是OpenCV ONE绕X轴旋转.这可以由以下旋转矩阵表示: 1 0 0 0 -1 0 0 0 -1
6 2023-05-10
编程技术问答社区
是否有可能在OpenGL中获得立方体的哪个表面将被点击?
我已经创建了一个立方体及其旋转.我的任务是您单击哪个旋转立方体. ex,如果您单击立方体中的表面红色,那么我将赢,但我无法找到Cube的单击表面视图, 编辑 这是我的渲染码: public void onDrawFrame(GL10 arg0) { // GLES20.glEnable(GLES20.GL_TEXTURE_CUBE_MAP); GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT | GLES20.GL_DEPTH_BUFFER_BIT); GLES20.glUseProgram(iProgId); cubeBuffer.position(0); GLES20.glVertexAttribPointer(iPosition, 3, GLES20.GL_FLOAT, false, 0, cubeBuffer); GLES20.glEnableVerte
0 2023-05-10
编程技术问答社区
ROS Rviz对Tango Pose数据的可视化处理
我们已经修改了 c api 示例代码 SO Tango Pose Data(位置(x,y,z)和Quaternion (x,y,z,w))以Posestamp ros消息的形式发表. 我们正在尝试使用RVIZ可视化姿势.姿势数据似乎需要一些转换,因为RVIZ箭头的旋转在我们周围移动时与探戈的行为不符. 我们意识到,在示例代码中,在探戈屏幕上可视化之前,姿势数据被转换为4x4姿势矩阵(function PoseData::GetExtrinsicsAppliedOpenGLWorldFrame),然后将其乘以左右乘以代表坐标框架更改的各种矩阵(例如,探戈到OpenGl). 理想情况下,我们将能够在发布姿势数据以进行可视化之前对姿势数据进行类似的转换.但是,我们必须将姿势数据保持在(x,y,z)和quaternion (x,y,z,w)格式的位置,才能将其发布到posestamp的消息中,并且我们看不到要应用什么转换. 我们已经查看了 Tango坐标系统会议探戈开发人
0 2023-05-10
编程技术问答社区
从OpenGL到DirectX的投影矩阵
我有一个使用OpenGL的应用程序,我必须将其移植到DirectX. 要总结我的问题:如何将基于右手坐标系的旋转矩阵移植到左手坐标系? 这就是我在 翻转三角顶点的顺序,使系统越过它们 从前面顺时针方向.换句话说,如果顶点为v0,v1, V2,将它们传递到Direct3D为V0,V2,V1. 使用视图矩阵将世界空间扩展到z方向上-1.为此,请翻转_31,_32,_33的符号 _34用于视图矩阵的D3DMATRIX结构的成员. 这很好,除了我无法轻易翻转我的顶点,因为我从Catia那里获得了一个不是原始的模型,所以我不能使用它. (我知道Row-Major和Column-Major的差异,没关系) 您知道如何将旋转矩阵从OpenGL移植到DirectX? 解决方案 涉及基础坐标系和给定的旋转转换的伸缩性,右手坐标系中的正旋转由右 - 手规则,反之亦然. 因此,如果您有两个坐标系统,则通过翻转符号在旋转角度的前面,您已经调整了旋转矩阵.您已经移植了旋转矩
4 2023-05-10
编程技术问答社区
鼠标采摘错过
我确实在这些课程的地形上采摘鼠标(但使用了C ++) 问题在于,鼠标的位置与射线与地形相交的地方: 垂直方向有很大的错误,有点水平. 不要看阴影,这不是正常的校正地图. 怎么了?我的代码: void MousePicker::update() { view = cam->getViewMatrix(); currentRay = calculateMouseRay(); if (intersectionInRange(0, RAY_RANGE, currentRay)) { currentTerrainPoint = binarySearch(0, 0, RAY_RANGE, currentRay); } else { currentTerrainPoint = vec3(); } } vec3 MousePicker::calculateMouseRay() { glfwGetCursorPos(win, &mou
6 2023-05-10
编程技术问答社区
如何分别旋转多个四边形? (Pygame,Pyopengl)
我想大致在自己的轴周围旋转我的四边形.我的第一个想法是使用glpushmatrix()和glpophmatrix(),但行不通.无论如何我相信这是好方法. 代码: import time, pygame from pygame.locals import * from OpenGL.GL import * from OpenGL.GLU import * def makeQuad(): glBegin(GL_QUADS) glVertex2f(0, 0) glVertex2f(0, 50) glVertex2f(50, 50) glVertex2f(50, 0) glEnd() def main(): pygame.init() display = (800,800) pygame.display.set_mode(display, DOUBLEBUF|OPENGL) gluOrtho2D(
4 2023-05-10
编程技术问答社区
如何在pygame和pyopengl中独立旋转两个物体
我正在尝试独立旋转2个对象,但是当我运行代码时,两个对象都以相同的方向旋转在此处输入代码 在这里,我保存矩阵并在立方体下旋转正方形 def rotate_square(): glColor3f(1,1,1) glMatrixMode(GL_MODELVIEW) glPushMatrix() glRotatef(45,0,1,0) glBegin(GL_LINES) glVertex3fv(v1); glVertex3fv(v2); glVertex3fv(v1); glVertex3fv(v3); glVertex3fv(v3); glVertex3fv(v4); glVertex3fv(v2); glVertex3fv(v4); glEnd() glPopMatrix() 主要功能 def main(): pygame.init()
0 2023-05-10
编程技术问答社区
用GLSL在着色器中直接从位置计算平移矩阵
我在C ++ OpenGL程序以及GLSL顶点和碎片着色器上都在变质. 我正在创建同一对象的几个实例.我只需要在实例之间更改对象位置. 这是我所做的:我正在使用一个统一变量,该变量是一系列变换矩阵.每个矩阵代表对象实例. MVP也是一个转换矩阵,但MVP是通过相机位置,方向和属性设置的. 这是我的顶点着色器: #version 330 core layout(location = 0) in vec3 vertex_position; layout(location = 1) in vec3 vertex_color; uniform mat4 object_positions[20]; out vec3 fragment_color; uniform mat4 MVP; void main() { gl_Position = object_positions[gl_Inst
2 2023-05-10
编程技术问答社区