怎样制作一个放大镜?3Q

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/27 19:54:03
怎样制作一个放大镜?3Q

怎样制作一个放大镜?3Q
怎样制作一个放大镜?3Q

怎样制作一个放大镜?3Q
先讲一下实现的思路和原理吧:放大镜大家都用过对吧?其实在flash里面实现发大镜无非就是用一块很大的区域显示比这个区域小的部分,所以也就是将放大镜中的像素按照位置映射到原图像上的某小部分.当然如果这一小部分比放大镜本身都大得话,那就变成缩小镜了.首先,我们还是先看一下代码中的像素映射那部分.var _dfilter:DisplacementMapFilter = new DisplacementMapFilter(一个Bitmap映射参数,new Point(0,0),1,2,0,0); 没错,在flash中我们可以使用DisplacementMapFilter滤镜来做像素映射,之前做的另一个效果Bump Mapping也用的是这个滤镜,大家知道这个滤镜的强大了吧.看到这个函数大家一定觉得很奇怪,怎么像素映射是使用一个图来作为映射的参数呢?这是因为通常在做图形时,他们更喜欢使用图象来做为参数传输,这样就可以把一个数组的参数当作一张贴图传输到显卡中.这个就是我们传入的映射图的样子.使用图片作为参数另一个好处,就是可以直观的看到这些参数分布的形态.至于这个映射图是怎么解析的呢?其实我们知道,通常一个真彩的像素有32bit,分别是ARGB,其中任意一个通道就占有8位宽,也就可以表示0-255中任何一个数字啦.在DisplacementMapFilter这个类中,他会读入这么一张图,然后将要显示的像素经过预先指定的2个通道分别读出x和y轴的位移,然后再到目标图上去寻找,bingo,就可以把颜色找到啦.具体的形式如下:dstPixel[x,y] = srcPixel[x + ((componentX(x,y) - 128) * scaleX) / 256,y + ((componentY(x,y) - 128) * scaleY) / 256] 在这里,我就给这个displaceMapFilter传入了这么一张图.这张图在中间部分让图像平均放大,并且在靠近边缘是进行很夸张的放大,最终的效果大家可以在2进制里面下载.使用了一个DisplacementMapFilter之后,我们就可以得到一张非常朴素的放大镜效果了,然而有时候我们希望来点有意思的事情,比如把放大镜的折射率设置的夸张点,这样我们就可以透过放大镜看到一些再物体边缘有真实的折射效果,相信在日常生活中你也一定遇到过这些情况.实际上折射效果实现非常简单,其实就是把原图像的R,G,B通道分开,然后分别对他们使用我们前面说的放大镜效果,并且将这些放大镜的放大率作少许的调整,比如1.5,1.6,1.7.最后我们在将的到的三个通道使用Add渲染模式叠加起来.大家也许会问这个映射的参数图是哪里来的,其实,那个图是我做的另外一个flash生成的.然后我在截个图,编辑编辑,在导到flash中的,很土吧,至于具体实现,大家可以去看我的代码.

怎样制作一个放大镜?3Q 怎样制作微型核反应堆?3Q 晓华想制作一个简易显微镜,但手边只有一个放大镜(没有其他透镜)你怎样帮助晓华完 一个放大镜怎样做成显微镜只有一个放大镜. 怎样算放大镜的倍数,和制作望远镜? 怎样制作实际中的放大镜?都需要些什么材料? 玻璃怎样制作放大镜吗但是玻璃做放大镜为什么可以看到?那只是玻璃啊. 怎样用放大镜制作显微镜我有4个一样的放大镜,想制作一个可以看到细菌的显微镜可以吗如果不行怎样自己做回答了再加10分 怎样用放大镜制作显微镜我有4个一样的放大镜,想制作一个可以看到细菌的显微镜可以吗如果不行怎样自己做回答了再加10分 请问怎样制作放大镜?制作工艺怎样,需要什么原材料,什么设备? 怎样制作放大镜小学科学教科书中有制作简单的放大镜这一课,包括材料、过程等相关问题. 用放大镜看钱会变大吗?3Q 放大镜是一个焦距怎样 的凸透镜 小刚想制作一个简易显微镜,但手边只有一个放大镜(没有其他透镜),你怎样帮助小刚完成他的设想 怎样制作一个电磁铁? 制作蝴蝶标本需要那些工具?怎样制作蝴蝶标本?3Q制作蝴蝶标本需要那些工具?怎样制作蝴蝶标本?那里可以买到吗? 放大镜是怎样制成的是用沙轮磨吗,但是用沙轮磨就不是透明的拉,是怎么制作的. 小明想制作一个简易的显微镜,但手边只有一个放大镜(没有其他透镜)