您现在的位置: 天极网 > 软件频道 > 设计在线 > 美工教室 > photoshop > 透析Photoshop的极坐标滤镜
全文

透析Photoshop的极坐标滤镜

2003-05-30 16:02作者:SandLeaf出处:精品论坛责任编辑:
  三、 极坐标滤镜的工作过程(直角坐标到极坐标)

  一般而言,位图图像中的任意一点(象素)可以用直角坐标(x,y)来表示。同样这个象素也可以由极坐标(r,a)来表示。极坐标滤镜的工作过程就是将基于直角坐标系的象素(x,y)经过极坐标映射(r,a)之后再由直角坐标(x’,y’)表示出来的过程。

      直角坐标和极坐标的互化公式如下:

          r = sqrt ( x * x + y * y )
          a = arctg ( y / x )
          x = r * cos ( a )
          y = r * sin ( a )

  下面是一段是模拟极坐标滤镜工作的伪代码。这个代码并不是我编写的,我也只是看懂而已,更详细的解释可以参考下面的链接:

  http://www.jasonwaltman.com/thesis/filter-polar.html

  (这是个国外的网站,站主利用C++模拟出了一些PS的滤镜的效果,而且提供源代码和源程序。)

  for every pixel in the original image do
  {
    // x和y是当前象素在直角坐标内的坐标。
    // 图像中心点的坐标为 x = 0, y = 0。
    // r 和 a 是象素的极坐标。其中角度a为弧度单位。
    r = sqrt ( x * x + y * y );
    a = atan2 ( y / x );
    // R取图像长和宽的最小值的一半。
    R= min[ image_width , image_height ] / 2
    // 新的x和y是经过极坐标滤镜变换之后,象素在直角坐标系中的新坐标。这个转换的目的,特别是R和6.2832(2pi)的选择,我认为是将转换后的图像限定到原画布大小之内的作用。同时这个步骤最终导致了图像的变形。
    x = r * image_height / R;
    y = a * image_width / 6.2832;
    filterpixel.x = x;
    filterpixel.y = y;
  }

  这仅仅是一段伪代码而已,真正的执行过程要复杂一些,如果继续深入下去就严重跑题了,所以深入的讨论还是请参见那个链接,自己去看吧。

      最后引用那个网站的一句话作为结束语。

  “If used creatively, the effect is worth more than just its novelty.”

  希望各位在看过本文之后能有所启发。口动不如心动,心动不如行动,期待各位的作品。

共5页。 9 7 1 2 3 4 5
共5页。 9 1 2 3 4 5
相关搜索:
热门关注
特别推荐
网友关注
软件下载
娱乐下载
驱动下载
热评排行
群乐关注结束-->
文章排行
本周
本月
最近更新
关于我们|网站律师|天极服务|电子杂志|RSS订阅|加入我们|网站地图
TMG
Copyright (C) 1999-2008 Chinabyte.com, All Rights Reserved 版权所有 天极网络
商务联系、网站内容、合作建议:010-82657868
版权声明 在线提交意见反馈 Powered by 天极内容管理平台CMS4i
经营性网站备案信息 网警备案 中国网站排名
天极传媒:天极网|比特网|IT专家网|IT商网|52PK游戏网|IT分众-网站地图