- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直致力于一个个人项目,以生成方程 x^2 + y^2 + z^2 = S 的整数解的图像,其中“S”是任何整数。
换句话说,我正在寻找所有 3D 点 [x,y,z],其中 x、y 和 z 都是完全平方整数并且 x + y + z = S
例如S = 2809会有解:
在开始我的问题之前,这里有一些上下文的小切线:
一般方程 x + y + z = S 的所有解都位于由以下定义的二维平面上:
这是 x + y + z = 50 的所有解(不仅仅是方点)的图表,以说明该方程的所有解都位于以上面定义的 ABC 为界的同一平面上。请注意,下面三角形的尖端是:[50, 0, 0]、[0, 50, 0] 和 [0, 0, 50]
回到我的问题:找到方形解点后,我想将 3D 解点转置为基于 ABC 平面的 2D 坐标,其中 A 为 (0,0),B 是最大 'x' 值,C 是最大 'y' 值.然后我希望将这些解决方案输出到图像文件。
我的线性代数知识匮乏,我一直无法找到基于 3 个非共线点将 3D 坐标转置为 2D 平面坐标的方法。
我的代码目前在 python 中,但算法/数学答案同样好!
非常感谢任何帮助!
最佳答案
如我所见,您已经可以找到您的 (x, y, z)
点,你的问题是关于如何将它们投影到平面上。
请引用projection matrix学习如何将 3d 世界投影到您选择的图像平面上。
具体来说,您必须表达您的 (x, y, z)
坐标为 homogeneous coordinates通过将它们称为 (x, y, z, 1)
,并将它们乘以与您需要转换它们的平面正交的相关相机矩阵。
这将产生 (x', y', f)
形式的二维齐次坐标从中您将能够通过 (x_projected, y_projected) = (x'/f, y'/f)
获得投影坐标.
OpenCV是你的 friend 。
回顾:
n
(x, y, z)
积分M
尺寸(4, 3)
使用 opencv 或使用任何工具自行计算。1
到所有点,将它们作为 3d 齐次坐标:n
积分(x, y, z, 1)
M * (x, y, z, 1)^T
= (x', y', f)
n
实际二维投影坐标(相对于由 M
矩阵定义的相机中心)由 (x, y)
= (x'/f, y'/f)
奖励:您可以堆叠所有 (x, y, z, 1)
点作为列进入 (4, n)
矩阵,P
,整个乘法过程就是R = M * P
, 结果矩阵 R
形状(3, n)
其列是生成的齐次坐标。
关于python - 将平面上的 3D 坐标转置到新的 2D 坐标系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63983534/
我一直在试图弄清楚小部件的坐标是如何到达的。例如在 qt 文档中,我想知道这是如何完成的。 QGridLayout *layout = new QGridLayout; layout->ad
我正在尝试在 libGDX 中正确配置我的 Camera 和 Sprite,以正确显示在 2D 坐标系中,原点位于左下角。 我像这样设置我的相机: cameraWidth = Gdx.graphics
我最近查看了 App Store 中提供的 Swift Playgrounds 应用程序,在那里我偶然发现了这个交互式坐标系 View ,类似于可以在 Mac 上的 Xcode playgrounds
我知道 Posit 会计算相机和 3d 对象之间的平移和旋转。我现在唯一的问题是,我不知道相机和物体的坐标系是如何定义的。因此,例如,如果我绕 z 轴旋转 90°,z 轴指向哪个方向,物体是绕这个轴旋
我想完成以下事情。我有一组PDF文件,首先我想检查坐标系的原点。如果 pdf 坐标系的原点不是左上角 [通常原点在左下角],我想创建一个坐标在左上角的结果 PDF。我正在尝试使用 PDFBox [下面
我有来自 AVAsset 的 CVPixelBufferRef。我正在尝试对其应用 CIFilter。我使用这些行: CVPixelBufferRef pixelBuffer = ... CVPixe
我很难理解 OpenLayers 使用的坐标系。 英国莱斯特大约在。 Latitude: 52.63973017532399 Longitude: -1.142578125 但要使用 OpenLay
我刚开始iOS绘图编程,发现坐标系和Mac OS X不同,基本上iOS上的原点在左上角,而不是像Mac上的左下角。只是想知道是否有人知道 Apple 为何做出此更改,以及 Mac 的 future 也
我想更改 PDF 坐标系以更改原点 (0,0) -> 从左下角到左上角。因此,例如,当我在 x=5 y=10 的位置书写文本时,它将以从左数起 10 点和从上数(而不是从下数)开始的 10 点书写。
我有以下代码: QGraphicsScene* pScene = new QGraphicsScene(this); ui->graphicsView->setScene(pScene); pScen
我目前正在尝试实现一个基于室内地图的 AR 浏览器,但我面临几个问题,让我们看一下图: 在这个图中,我已经将坐标更改为OpenGL的右手坐标系。 在我们的真实场景中, 给定角度 FOV/2 和相机高度
我正在尝试在 ios 中构建自定义 warp 内核。 我有这个内核代码 var kernelCode = " kernel vec2 partialFlip(vec2 center,
我在我的旧手机 (Samsung Galaxy Ace) 上测试我的“游戏”,我把它给了我妈妈,所以我现在使用的是平板电脑 (Samsung GT-P7300),但我在当我触摸屏幕时的坐标。我在 An
我正在开发一个网络应用程序,它包括一个我绘制函数图形的部分,坐标系是由 Canvas 制作的。问题是,我无法放大坐标系。我想让它能够放大和缩小+使用鼠标移动坐标系。放大/缩小时,x 和 y 值也应该增
我的问题类似于Changing sensor coordinate system in android 无论设备方向如何,我都希望能够相互比较用户的 Action 。因此,当用户以纵向握住手机并弯曲
我正在尝试使用 stereoRectify。我没有使用 stereoCalibrate 校准我的相机,而是已经有了一些信息,我将使用这些信息来创建相机矩阵,这些矩阵是 stereoRectify 的输
我在矩阵中有一个对象的足迹,简而言之,对象占用了哪些单元格(对象是一个部分,标记为 0 的单元格未被占用,标记为 1 的单元格被对象占用)。然后,我在 list > 中有一个已占用单元格的列表。与矩阵
我是 Canvas 的新手,想知道: 使用倒笛卡尔坐标系的基本原理。 比如说,我需要在直方图中绘制一些值。是一种将 Canvas 框架旋转/映射到笛卡尔坐标系的简单方法。? 最佳答案 Canvas 是
通读 SVG 1.1 specification ,我试图了解用于定义初始视口(viewport)的单位与文档其余部分使用的单位之间的关系。 如果视口(viewport)最初是使用点定义的 并且文档
好的,所以我找到了这个 thread ,这是我认为我需要做的。但是,我使用的不是 GL10,而是 GLES20。 glOrthof 不是 GLES20 API 的一部分。 我想做的是改变坐标系的范围,
我是一名优秀的程序员,十分优秀!