gpt4 book ai didi

iphone - 如何在iPhone上实现“褪色的触摸轨迹”效果?

转载 作者:行者123 更新时间:2023-12-03 19:20:42 25 4
gpt4 key购买 nike

我想知道您将如何实现类似于this one implemented in flash的效果。它只是一个黑屏,当用户触摸并在其上拖动时,会产生类似于Flash电影中看到的效果。

这种效应叫什么?你有更好的例子吗?
我最大的问题之一是准确表达我在说什么。我既需要这种效果的名称,又需要可以显示我在说什么的视频。这将帮助其他人更好地理解问题。

我能想到的最接近的术语表示类似的内容是pointer trail。唯一的区别是,它不会显示光标,而是会显示一条逐渐消失的实心轨迹。 website that made the flash example,称为粒子重影。 YouTube video for HP中的另一个示例显示了0:30到0:36之间的效果。它开始时更像是绘画,但最终变成淡入淡出的效果。

如果您对此效果有更好的称呼或更好的示例,请提及它,我将更新该帖子。

需要哪种iPhone技术?
OpenGL还是Quartz 2D?我猜核心图形由于速度是不可能的。我还缺少其他技术吗?它需要足够快且没有滞后。假设一条轨迹在任何给定点持续约一秒钟,那么当用户快速移动其手指时,可能同时存在大量动画像素。甚至可能用需要淡出的像素填充屏幕的大部分区域。效果看起来非常优雅,完全不像XP中指针轨迹的断断续续。

如何实施?
理想情况下,我不希望渐变效果像Flash示例(它是一个完美的圆圈)那样坚如磐石,而更像HP视频中的渐变效果更自然(在不同的情况下,路径中的每个点)。

我可以直接操作单个像素吗?即我是否需要跟踪手指移动过的每个像素并重复调用一个函数,例如PaintPixel(x,y,Brightness)来修改像素的RGB值?这似乎是过多的像素修改,并且听起来会降低整个系统的速度。但是,我以前从未做过这种事情,所以我不知道这是否通常如此。例如,假设一次触摸占用32x32像素。每次触摸我们有32 x 32 = 1024像素。随着手指的移动,将需要另外设置1024个像素的动画,其中大多数像素已经与以前的触摸重叠。假设手指在一秒钟内越过iPhone的高度,我们说的是每秒更新480 x 32像素= 15,360像素。

我会使用一个从白色逐渐淡化为黑色的小型视频剪辑,并随手指移动而生成很多视频剪辑实例的情况吗?我没有可以打开Flash示例的Flash版本,因此无法检查其源代码,但是我猜测它只是随着点的移动而创建新的视频剪辑实例。对于自然淡出来说,这有点棘手,这可能涉及制作多个淡出视频剪辑并为每个点随机选择一个。

我会使用一组图像(例如100个左右的圆圈,每个圆圈代表从纯白色逐渐变为黑色的触摸),然后随着时间的推移创建并替换它们的实例吗?例如,当手指移动时,我将在那一点上显示touch100.jpg,它代表纯白色,在下一次迭代中,同一点将显示touch99.jpg,然后是touch98.jpg,一直持续到到达touch0.jpg,即代表纯黑色。

我还有其他想法吗?

如果这些想法听起来很奇怪,我感到抱歉。您可能会说,我之前从未做过类似的事情,所以我不知道实现这种效果的通常方法是什么,我只是抛出了我能想到的任何想法。

您将推荐哪些资源来学习如何实现此目的?
您是否会向尝试学习如何实现这种事情的人推荐任何学习材料?

当我需要了解一种完全不同的技术来实现它(例如OpenGL)时,我不想花很多时间学习一种技术(例如Quartz)。

我还忘记提供其他信息吗?
您还会建议我提出其他问题吗?

最佳答案

pheelicks具有良好的设计,易于实现,并且效果很好。它的缺点是必须每帧重新计算整个屏幕,效率可能不如最佳效果。我会提出以下可能具有更好性能的设计(或者可能具有更差的性能;大多数性能事物都必须经过测试才能看到)。

对于每个圆圈,生成一个不透明的CALayer并将其附加到视图。将其contents分配为预渲染的圆CGImageRef。附加淡入淡出的动画。将其附加到视图。使用动画委托,在完成动画时删除该图层。然后,我可能会重用该层,而不是破坏它并创建一个新层。毕竟它已经包含了您的圈子,因此重复使用它应该非常便宜。 (编辑:我正在重新考虑;您甚至不必删除并重新添加图层,只需将其移动到新位置,或在不需要时将其隐藏。您可以使所有这些圆圈成为子图层,如果您想用一种简单的方法在不需要的时候删除整个足迹,则可以在“足迹”图层的各个层次上进行。)

我的方案的优点在于,它仅计算重要的像素,并依靠iPhone的优化绘图系统进行计算。它可以生成大量的图层,但是系统是为处理该图层而设计的(图层的数量由路径长度和帧速率确定)。代码也应该非常简单。

关于iphone - 如何在iPhone上实现“褪色的触摸轨迹”效果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2342032/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com