问题标签 [perspective]
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.
c# - 透视 3D 对象
我正在将我们的一个旧应用程序从 vb6 更新到 c#,并且在此过程中必须重新创建原始程序员设计的自定义控件。该控件简单地获取对象的尺寸,矩形或圆锥形,并在 3D 中放置对象的轮廓草图(我认为技术上是 2.5D)。当然,控制或算法的代码无处可寻。
事先对此一无所知,除了视角之外,我几乎已经复制了所有内容。我正在使用我在此处的另一个答案中找到的代码。
不过,我需要帮助的最后一点是将视角从左到右旋转大约 30 度,所以我没有直视。
谢谢你的帮助。
c# - 如何在 C# 或 VB.Net 中进行 3D 变换(透视)?
我想做的事情听起来很简单,但到目前为止,我在 Internet 上的任何地方都没有找到在 DotNet 中执行此操作的方法,也没有找到可以执行此操作的第 3 方组件(无需花费数千美元购买完全不必要的功能)。开始:
我有一个地砖的 jpeg(实际照片),我用它创建了一个棋盘图案。在 dotnet 中,很容易将照片旋转和拼接在一起,并将最终图像保存为 jpeg。
接下来,我想拍下最后一张照片,让它看起来好像“瓷砖”铺设在地板上,以形成一个通用的“房间场景”。基本上是添加一个 3D 透视图,让它看起来好像真的在房间场景中一样。
这是一个与地毯类似的网站,但是我需要在 WinForms 应用程序中执行此操作: Flor 网站
基本上,我需要创建一个 jpeg 的 3D 透视图,然后将其保存为一个新的 jpeg(然后我可以放置一个通用房间场景的叠加层)。
任何人都知道在哪里可以获得可以完成这个看似简单的任务的第 3 方 DotNet 图像处理模块?
eclipse - 在 Eclipse 中重命名透视图
有没有办法在 Eclipse 中重命名透视图?我想为同一个项目打开多个 Eclipse 实例,这将对我有所帮助,因为我可以通过查看任务栏确切地知道我正在使用哪个实例。
java - 如何最小化 ICustomPerspectiveLayout 中的 IFolder
我通过调用在我的视角中创建了一个新文件夹
我通过调用在这些文件夹中添加了多个视图
如何最小化创建的文件夹,以便在显示透视图时默认最小化文件夹?
javascript - 绘制魔方的 3d 基础知识
我想在 html 画布元素上用一些透视图绘制一个魔方,但我从未有过 3d 图形、透视图等方面的经验,所以我正在寻找所有有用的资源来实现这一点。我发现的唯一有用的链接是这个演示:
android - 使用 OpenGL ES 在任何分辨率上的视口边界
我很难理解 OpenGL 透视图。我已经阅读了大量信息,但它并没有帮助我尝试实现我所追求的目标。这可以确保我的 3d 场景填满每台 Android 设备上的整个屏幕。
为了测试这一点,我将在 3d 空间中绘制一个四边形,最终应该触及每个角落,填满整个设备的屏幕。然后我可以使用这个四边形,或者实际上它的坐标来指定某个 Z 距离处的边界框,我可以使用它来放置我的几何图形并确保它们填满我的屏幕。当屏幕调整大小时,或者我要在另一个屏幕分辨率上运行它时,我会重新计算这个边界框和几何图形。我不是在谈论静态几何,而是说我想用球填充屏幕,无论有多大或多少球,唯一重要的是屏幕被填充并且没有多余的可见截锥体外的球。
- 据我了解,在指定视口时,您实际上将像素值绑定到截锥体的边界。我知道您实际上可以通过窗口像素匹配 3d 几何位置的方式设置正交视图,但我不确定这在透视图中如何工作。
- 这里我假设视口的宽度和高度映射到 nearZ。所以当一个球在 Z=1f 它有它的原始大小
- 当将球移动到屏幕中时,向 farZ 方向移动,球将按比例缩小以使透视起作用。例如,Z=51f 的球在我的屏幕上会显得更小,我需要更多的球来填满整个屏幕。
- 现在为了做到这一点,我正在寻找紫色边界
- 实际上,我需要这些边界以不同的截锥体尺寸(宽度 x 高度)填充整个屏幕,而球的截锥体角度和 Z 距离始终相同
- 我想我可以使用三角函数来计算这些紫色边界(见蓝色三角形注释)
- 我是否正确标记了截锥体角度,它是截锥体的垂直角度?
- 有人可以详细说明绿色 1f 和 -1f 值,因为我似乎已经读过一些关于它的东西?似乎是一些用于调整截锥体内几何形状的标量?
我实际上希望能够以编程方式将几何图形定位在 3d 空间内的视口边界上,以任何分辨率/窗口为任何任意 Android 设备。
注意:我有一个 Flash 背景,它使用具有已知宽度 x 高度的任何分辨率的舞台(视觉区域),这使得使用绝对测量或百分比测量可以轻松定位/缩放资产。我想我正试图弄清楚这个系统如何应用于 OpenGL 的透视图。
c# - 如何将 4 个点转换为 xna 矩阵
我想用 C# 开发自己的 AR 库。我的问题是:我有标记的 4 个角点,想在标记上显示 3D 立方体(这是一个多标记库),但我不知道如何获取 xna 的矩阵。
css - 确定距原点给定距离处对象的视觉大小(使用透视)
假设我们有一个 50 像素宽的正方形。而 -webkit-perspective 是1000px*
.
确定正方形在距观看者给定距离(实际显示在屏幕上的宽度)处看起来有多大的公式是什么?
*
这意味着查看者的位置距离该z=0
点 1000px。
ios - OpenGL ES 2.0:为什么这个透视投影矩阵没有给出正确的结果?
大约 2 天前,我决定编写代码来显式计算模型-视图-投影(“MVP”)矩阵,以了解它是如何工作的。从那时起,我就遇到了麻烦,似乎是因为我使用的投影矩阵。
使用 iPhone 显示器,我创建了一个由以下 4 个角顶点描述的屏幕中心正方形:
因为我使用的是 OGLES 2.0,所以我将 MVP 作为统一传递给我的顶点着色器,然后简单地将转换应用于当前顶点位置:
现在我已经将我的 MVP 简化为 P 矩阵。下面显示的代码中列出了两个投影矩阵。第一个是标准透视投影矩阵,第二个是我在网上找到的显式值投影矩阵。
当使用显式值矩阵时,正方形在屏幕中心以正确的尺寸精确呈现。使用透视投影矩阵时,屏幕上不会显示任何内容。我已经打印(screenWidth/2, screenHeight/2, 0)
了透视投影矩阵为屏幕中心生成的位置值,它们非常大。显式值矩阵正确地产生零。
我认为显式值矩阵是正交投影矩阵 - 对吗?我的沮丧是我无法弄清楚为什么我的透视投影矩阵无法工作。
如果有人能帮助我解决这个问题,我将不胜感激。非常感谢。
更新克里斯蒂安·劳:
更新 2
新的 MVP 代码:
屏幕中心仍然看不到任何东西,并且屏幕中心的转换后的 x,y 坐标不为零。
更新 3
在上面的代码中使用转置ts
代替!但是正方形不再是正方形了;它现在似乎具有纵横比screenHeight/screenWidth
,即它具有平行于(短)屏幕宽度的较长尺寸,以及平行于(长)屏幕高度的较短尺寸。
我非常想知道(a)为什么需要转置以及它是否是有效的修复,(b)如何正确纠正非正方形维度,以及(c)transpose(ts)
我们使用的这个附加矩阵如何适合Viewport * Projection * View * Model * Point的变换链。
对于 (c):我理解矩阵的作用,即 Christian Rau 关于我们如何转换到范围 [-1, 1] 的解释。但是将这个额外的工作作为一个单独的转换矩阵包含在内是否正确,或者我们的 MVP 链的某些部分是否应该代替做这项工作?
衷心感谢 Christian Rau 迄今为止所做的宝贵贡献。
更新 4
我关于“ts 如何适应”的问题很愚蠢,不是吗 - 重点是矩阵只需要,因为我选择使用屏幕坐标作为我的顶点;如果我从一开始就使用世界空间中的坐标,那么这项工作就不需要了!
感谢 Christian 的所有帮助,这是非常宝贵的 :) 问题已解决。
eclipse - 我在 Eclipse 中看不到 Aptana 透视图
在 Eclipse 13.7 (Indigo) 中安装 Aptana Studio 3 插件版本后,我看不到 Aptana 透视图。插件已安装,但我无法在 Eclipse 中选择 aptana 透视图...当我安装 Aptana Studio 2 时,一切正常...