我想要“淡入/淡出”图像。但不透明。
图片胜于 Eloquent :
原始图片:
所需图像:
我怎样才能以编程方式做到这一点?不是像“使用 Bitmap.Canvas”那样的方式,而是数学方法。 (如果可能的话,“对于傻瓜”...:D)
我希望图像有一个淡入/淡出区域,不是线性增加而是“曲线”。我猜这与贝塞尔曲线有关?如果是,我将如何设置点以获得这样的曲线?
或者你会采取什么方法?
感谢您的帮助! :)
最佳答案
这大致是您将如何做到这一点(正如您所说,您正在寻找逻辑而不是完整的实现)
- 创建基本形状轮廓:创建部分正弦波,使得半周期(半波长:P1 = L/2)等于长度(x 坐标大小)你的形象。
- 添加泛音:添加另一个正弦函数。这次波长由
P2 = P1/2 + rnd
给出,其中rnd
是区间(-P1/4 , +P1/4 )
- 重复:现在 P2 成为新的 P1。
这样您就可以通过调制主波来生成“波浪”,并且您将获得顶部边界。
您可以更改符号并获取下边界。
您可能要查找的词(即形状)是泛音。您可以查找有关生成光学或声学泛音的更多信息。
这个向直线添加泛音的示例会给出更好的主意。上面的代码将这些随机缩短周期的正弦波相加,以创建波叠波效应 ( source )
关于delphi - 图像 "fade"输入/输出(不透明度),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24638836/