求助!有关同比例放大的算法

cd3535 2012-07-13 04:35:11
http://scaleofuniverse.com/

想写一个类似上面网站flash的WPF,想要在手指拖动的是后按比例放大,但是算法总是出错,要光圈和物体都能够在缩放时在屏幕上滑入滑出,并且物体可以拖动。

算法没有学好,求各位大神帮助
...全文
185 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
叫我三三 2012-07-16
  • 打赏
  • 举报
回复
啊唻,这不是弦理论嘛,优雅的宇宙第三集里,用的就是这个,不过那个是3D的。
看下这个flash的效果,应该是每个小物件都是一个元素,然后通过发散射线这种方式 达到这种效果的。
cd3535 2012-07-16
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 的回复:]

引用楼主 的回复:
http://scaleofuniverse.com/

想写一个类似上面网站flash的WPF,想要在手指拖动的是后按比例放大,但是算法总是出错,要光圈和物体都能够在缩放时在屏幕上滑入滑出,并且物体可以拖动。

算法没有学好,求各位大神帮助


我不知道你说的“并且物体可以拖动”是什么意思。假设在一定级别下,还有什么可以拖动,那么不过是在一定级别的底图上叠……
[/Quote]

我觉得这个软件里面的小物件如太阳什么的是和背景分开的,就是物体和背景要同比例缩放,还要可以按照比例滑入滑出
EnForGrass 2012-07-15
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 的回复:]

嗯,对不起,上面我说的有点简单,不得已还是用个马甲账号来补充一下切图概念。这个概念在互联网的地图制作上是很基本的功能。

假设在某一缩放级别下,我们需要将整个图片切分为一个个256x256的瓦片,那么我们就得到了这个级别下的一堆瓦片图。然后在这个级别下,假设用户把显示窗口中心点对准整个图片上某一个中心点,那么我们的应用程序仅需要加载有限的一些瓦片,而不需要加载所有的瓦片。然后,当用户用鼠标(……
[/Quote]
真是P哥马甲,
sp1234_maJia 2012-07-15
  • 打赏
  • 举报
回复
嗯,对不起,上面我说的有点简单,不得已还是用个马甲账号来补充一下切图概念。这个概念在互联网的地图制作上是很基本的功能。

假设在某一缩放级别下,我们需要将整个图片切分为一个个256x256的瓦片,那么我们就得到了这个级别下的一堆瓦片图。然后在这个级别下,假设用户把显示窗口中心点对准整个图片上某一个中心点,那么我们的应用程序仅需要加载有限的一些瓦片,而不需要加载所有的瓦片。然后,当用户用鼠标(滚轮)改变缩放级别的时候,当缩放到一定程序,我们就可以从一个级别跳入另外一个级别。而所有的瓦片缩放和消失/加载都是平滑地处理的,不会出现暂时空白的现象。

这里需要首先写一个程序产生大量的瓦片,并且按照其在大图上的坐标、按照其缩放级别,分别索引,以便快速加载。
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
http://scaleofuniverse.com/

想写一个类似上面网站flash的WPF,想要在手指拖动的是后按比例放大,但是算法总是出错,要光圈和物体都能够在缩放时在屏幕上滑入滑出,并且物体可以拖动。

算法没有学好,求各位大神帮助
[/Quote]

我不知道你说的“并且物体可以拖动”是什么意思。假设在一定级别下,还有什么可以拖动,那么不过是在一定级别的底图上叠加相应级别的覆盖层而已。只是工作量更大而已,我觉得没有什么“算法”可讲,它实在是太简单了。

实际上最费功夫的是自动化切图制作的时间。我上面说底图切成30张,是个手误,我想写的是300个级别,或者更多。当你编写一个自动将各种素材图片拼接叠加,然后拼好之后再自动切图程序,它可能需要在最快的PC上运行8个小时。而8小时得到的切图结果,如果按照此程序这样去连续切换显示,就形成了一般用户喜欢玩上几十秒钟的程序了。我对这种“技术”不太感兴趣,我觉得这种技术在内容表现力上并不实用,但是这个程序确实很有创意。

  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]
但是我要在移除里面的元素之后继续放大,这个可以无限放的的吗?会不会这样占很多的内存
[/Quote]

根本不怎么占用内存。我想不超过10M。因为个级别图片甚至不需要一次加载,只需要异步加载未来3级图片就够了。
  • 打赏
  • 举报
回复
最终的画面所依据的图片,可以是分级别的,例如分为30个级别。每一次仅仅显示一个级别图片,当缩小到一定比例之后,实际上立刻换上下一个级别的图片。
cd3535 2012-07-15
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

viewbox控件!!
[/Quote]

但是我要在移除里面的元素之后继续放大,这个可以无限放的的吗?会不会这样占很多的内存
cd3535 2012-07-15
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

viewbox控件!!
[/Quote]

这个viewbox是可以把里面的子元素按同比例放大拉伸的吗?
Conmajia 2012-07-13
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

我怀疑flash这个不是简单的放大缩小,否则一张图片也太大了,怎么画啊。
[/Quote]

可以用多张图片,缩放出屏幕就没必要继续缩放了。。
lizhibin11 2012-07-13
  • 打赏
  • 举报
回复
我怀疑flash这个不是简单的放大缩小,否则一张图片也太大了,怎么画啊。
lizhibin11 2012-07-13
  • 打赏
  • 举报
回复
你想做三维的还是二维的?二维就是两个矩阵,一个缩放的一个平移的,三维的话可以通过控制摄像机位置来达成这个效果。
wangyue4 2012-07-13
  • 打赏
  • 举报
回复
viewbox控件!!
Conmajia 2012-07-13
  • 打赏
  • 举报
回复
宇宙的维度啊。。。这版好像有点老。。。

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧