问题标签 [rotation]

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.

0 投票
2 回答
3708 浏览

iphone - iPhone dev - 手动旋转视图

如何使用 autoresizingMasks 手动旋转视图,就好像用户旋转了手机并且它已经自动旋转了一样。我也希望它是即时的,没有动画。我你想知道我为什么需要这个,看看我在iPhone Dev 的另一个问题 - 保持界面旋转

谢谢!!

0 投票
3 回答
720 浏览

iphone - 10 度旋转图像被截断

我旋转我的图像:

当我显示图像时,我在 10 度以下看到它,但图像在边缘被切断。

有人知道如何解决这个问题吗?这是用于澄清的图像。

替代文字 http://img197.imageshack.us/img197/7077/problemkfr.png

我昨天一直在尝试一整天,但无法弄清楚。

另一个示例图像:

替代文字 http://img25.imageshack.us/img25/3370/afbeelding6b.png

0 投票
1 回答
605 浏览

iphone - 我的 Iphone 应用程序在侧面打开时崩溃(访问错误)(横向模式)

出于某种原因,每次我运行我的 Iphone 应用程序时,只要它是直立的,该应用程序就可以正常工作。模拟器向左或向右转动的第二秒(例如,如果我手动转动它,或者如果它试图播放视频),代码就会崩溃,出现“错误访问”或异常。

疯狂的是,这些东西只是工作,我没有改变任何看起来只会影响横向模式的东西。后台复杂的东西是否已经改变以使其停止工作?这只是某种记忆错误的症状吗?

-珍妮

0 投票
1 回答
275 浏览

iphone - 重新访问时 UIView 很少不旋转的一些可能原因是什么?

我将此代码放入我所有的视图控制器中:

我也有:

我可以看到代码可以正常工作,但是偶尔,在我将其视图放回主视图后,主视图控制器很少旋转到横向模式。它发生的机会非常罕见,但这让我很烦。此外,我可以看到它在 iphone 上发生的频率更高。在模拟器上,我记得它从未发生过。您知道造成这种情况的可能原因是什么吗?先感谢您。

0 投票
4 回答
33457 浏览

math - 计算旋转以查看 3D 点?

我需要计算 3D 对象面对任意 3D 点的 2 个角度(偏航和俯仰)。这些旋转被称为“欧拉”旋转,仅仅是因为在第一次旋转之后(假设 Z,基于下图),Y 轴也随着对象旋转。

这是我正在使用的代码,但它不能完全工作。在地平面 (Y = 0) 上,对象正确旋转以面对该点,但是一旦我在 Y 中向上移动该点,旋转看起来不正确。

你知道如何计算给定一个点的 2 个欧拉角吗?


下图显示了我旋转的方式。这些是我需要计算的角度。(唯一的区别是我按 X、Y、Z 的顺序旋转对象,而不是 Z、Y、X)

图片

在此处输入图像描述


这是我的系统。

  • 坐标系是 x = 向右,y = 向下,z = 更靠后
  • 默认情况下,对象位于 (0,0,1),它面向后
  • 旋转的顺序是 X、Y、Z,其中在 X 上的旋转是俯仰,Y 是偏航,Z 是滚动

我的系统

0 投票
1 回答
3545 浏览

opengl-es - OpenGL ES glRotatef 执行剪切而不是旋转?

我可以在 iPhone 的屏幕上绘制一个精灵,但是当我尝试旋转它时,我得到了一些奇怪的结果。它似乎在 y 方向上拉伸精灵越多,精灵越接近指向 y 轴(90 度和 270 度)。当指向 x 和 -x 轴(0 度和 180 度)时,它会正确显示。它基本上就像是在剪切而不是旋转。以下是代码的要点(投影矩阵是正交的):

有人可以向我解释如何解决这个问题吗?

halfsize 只是精灵的 x 和 y 范围的一半;删除 glScalef 调用没有任何区别。

这是我的矩阵设置:

好的,希望这个屏幕截图能展示正在发生的事情:

0 投票
4 回答
9966 浏览

jquery - JQuery UI 旋转标签和事件

我正在使用 JQuery UI(旋转选项卡),我想知道当导航选项卡之一上发生 onclick 事件时如何停止循环。

我尝试在上面的代码下方(以及 .ready 内部)添加此代码,但无济于事。我确认下面的这个函数正在接收 onClick 事件,但是旋转没有停止。

一定不能正确访问对象......有什么想法吗?

0 投票
3 回答
12042 浏览

iphone-sdk-3.0 - UITabBarController、MoreNavigationController 和设备旋转的圣杯

更新:先看看我对这个问题的回答。这似乎是一个错误。已经创建了一个最小的测试用例,并向 Apple 提交了一份报告。(自 iPhone OS 3.1 起已修复。)

这是来自“我是如此接近!”的谜题。部。

我有一个基于标签栏的 iPhone 应用程序。每个选项卡都有一个UINavigationController与通常的嫌疑人(导航栏,表格视图......这反过来又可以导致另一个 VC 等)。

现在,这些较低级别的 VC 之一将用于纵向横向模式。但是有一个问题。我们的景观友好型 VC 的shouldAutorotateToInterfaceOrientation:不会被直接调用!该怎么办?

这就是我们所做的。在我在自己的文件中实现的标签栏控制器中,我有这个:

这最终将请求传播到我的景观友好型 VC,它也响应此消息。我所有的其他 VC 都没有实现这个方法,所以他们只是使用默认的纵向。

问题解决了!!!耶!

嗯,不完全是。:(

当从标签栏控制器的MoreNavigationController的深处调用我的风景友好型 VC 时,事情似乎不太顺利。

我决定比较/对比从前四个选项卡栏UINavigationControllers之一调用的VC ... 和从MoreNavigationController调用的同一个 VC 。这将有点超详细,所以请耐心等待。希望逐场比赛证明对侦查事情很有用。

当应用程序加载时,有几个对标签栏控制器的 shouldAutorotate... 方法的初始调用。在这些早期情况下,selectedViewController为 nil。但是,我们最终加载完成,选择了初始选项卡项,一切正常。

对。首先,让我们选择前四个标签栏项目之一并深入到我们的 VC。

我们将选择第三个导航栏项目,这就是第三个导航控制器。我们深入了解支持轮换的 VC。快速检查确认父级确实是我们标签栏的视图控制器列表中的第三个导航控制器。好的!

让我们旋转设备。标签栏控制器被要求自动旋转(参见上面的代码)。我们观察到selectedViewController也是第三个导航控制器,加上导航控制器的顶部和可见视图控制器都设置为我们可信赖的支持旋转的 VC。

因此,标签栏控制器会将shouldAutorotate消息转发给第三个导航控制器……但我们的旋转友好型 VC 最终会收到该消息。(我在这里没有做任何特别的事情。也许所需的 VC 会收到消息,因为它是顶部和/或可见的 VC?)无论如何,我们旋转到横向,调整大小,一切都很好。“巨大的成功!”

现在让我们点击后退按钮并弹出 VC 堆栈,在此过程中保留横向模式。再次查询标签栏控制器。

是时候在这里稍作休息了。我们的导航控制器的topViewController仍然是旋转友好的 VC,但是visibleViewController现在设置为UISnapshotModalViewController!呵呵。以前从未见过这个……但Erica Sadun 有。看起来它是用于“消失的视图控制器”(在这种情况下肯定是真的 - 它消失了)。

当我继续前进时,可见的 VC 保持为快照,但顶部的 VC 最终会更改为堆栈中的下一个 VC,因为我的特殊 VC 最终消失了。很公平。

所以就是一切正常的场景。

现在让我们尝试相同的测试,只是这次我们将转到MoreNavigationController(更多选项卡栏项)并向下钻取到与之前相同的 VC 类。在我的例子中,它恰好是标签栏控制器的 VC 列表中的第 7 个。

我们进入旋转感知 VC 并且......这次它被要求直接旋转!根本不要求标签栏控制器获得旋转权限。唔。

快速检查父 VC 显示它是一个MoreNavigationController。好的,这是有道理的。

现在让我们尝试旋转设备。什么都没有被调用。我们的断点都没有被命中。不在我们的 VC 中。不在我们的标签栏控制器中。(咦?!?!)

好的。让我们弹出堆栈,回到同一个 VC 并再次尝试旋转。奇怪的。现在我们在标签栏控制器中接到一个请求自动旋转权限的电话。在这里,选择的控制器是我们信任的导航控制器(#7),但这次它的visibleViewControllertopViewController设置为NIL

一旦我们从这里继续,调试器控制台中会出现一条神秘消息:

使用两阶段旋转动画。要使用更平滑的单阶段动画,此应用程序必须删除两阶段方法实现。

神秘,因为我没有使用两阶段旋转动画!在我的源代码中的任何地方都没有SecondHalf方法变体。

唉,我的旋转感知 VC 从来没有被告知旋转正在发生(即使旋转确实发生在屏幕上),所以我的观点当然被弄乱了。混乱和悲伤随之而来。:(

在这一点上,我们甚至不会费心弹出堆栈。

我认为 View Controller 文档暗示了可能的问题:

如果您想在方向更改期间执行自定义动画,您可以通过以下两种方式之一进行。方向更改过去分两步发生,通知发生在旋转的开始点、中间点和结束点。但是,在 iPhone OS 3.0 中,添加了对一步执行方向更改的支持。使用一步方向更改往往比旧的两步过程更快,通常建议用于任何新代码。

我想知道MoreNavigationController是否仍在响应两步过程,因此是否会阻止任何使用一步过程的尝试?请注意,如果您回复两步消息,则一步变体将不起作用(同样,根据文档)。我没有回应他们,但我有一个偷偷摸摸的怀疑是幕后的东西。

事实上,如果我注释掉单步方法,并尝试响应willAnimateSecondHalfOfRotationFromInterfaceOrientation:duration:,我确实得到了备忘录!但它仍然不能非常干净地从堆栈中弹出(就视觉效果而言)。更奇怪的是:willAnimateFirstHalfOfRotationFromInterfaceOrientation:duration:没有被调用,即使我试图在 shouldAutorotateToInterfaceOrientation: 中偷偷调用 self (使用 FirstHalf 消息。它在跟踪期间立即返回,就好像我从未定义过它一样。叹。

所以这就是逐场比赛。

总而言之,有没有成功地处理了从标签栏控制器的 MoreNavigationController 中调用的 VC 的一步设备旋转?求知者想知道!

0 投票
2 回答
988 浏览

iphone - iPhone Dev - 自动旋转所有视图

(顺便说一下,我在没有 Interface Builder 的情况下进行开发)如果您有一个自动旋转的标签栏应用程序,因此设置了所有自动调整大小的掩码,您如何使其适用于所有视图?就像如果一个视图自动旋转到横向,您在选项卡栏中选择了一个不同的选项卡,并且与该选项卡关联的视图出现了,并且由于它从未自动旋转而变得一团糟,它使用使其适合纵向的框架进行了初始化模式,即使 autoresizingmasks 设置为使其在横向看起来很好,它也从未旋转过。解决方案是什么?(顺便说一句,我懒加载视图,所以在任何给定时间加载的唯一视图是与所选选项卡关联的视图(视图控制器的视图))。

0 投票
3 回答
3157 浏览

opengl - 在 2 个轴上旋转 OpenGL 场景

我有一个场景,其中包含位于空间中任何位置的对象,我正在制作一个类似轨迹球的界面。

我想这样做,以便我可以移动 2 个单独的滑块以分别在 x 和 y 轴上旋转它:

但是,上面的代码不起作用,因为 X 旋转将依赖于 Y 旋转。

我怎样才能在不使用 gluLookAt() 的情况下实现这一点?

编辑:我想说我的实现比轨迹球接口更简单。基本上,如果 x 滑块值为 80,y 滑块值为 60,则垂直旋转 80 度,水平旋转 60 度。我只需要让它们彼此独立!