分享阴阳图算法
#include <WinAPI.au3>$hDC = _WinAPI_GetDC(0)
For $i = 1 To 500
For $j = 1 To 500
$iT = (2 * 3.14) * $i / 500
$iR = (2 * $j) / 500
If f($iT, $iR) Then
$iX = Round(Cos($iT) * $iR * 50) + 300
$iY = Round(Sin($iT) * $iR * 50) + 300
_WinAPI_DrawLine($hDC, $iX, $iY, $iX + 1, $iY + 1)
EndIf
Next
Next
_WinAPI_ReleaseDC(0, $hDC)
Func f($iT, $iR)
Return ((Cos($iT - $iR) - Sin($iT)) * ($iR ^ 4 - 2 * ($iR ^ 2) * _
Cos(2 * $iT + 2.4) + 0.9) + (0.62 * $iR) ^ 1000 < 0)
EndFunc ;==>f今天在Metrix67的blog中看到了这个算法,验证了一下,果真精彩至极,分享出来,希望一起探讨下这个函数的构造过程。以下就是这个函数的结果了:
有点像极坐标系转直角坐标系 漂亮........ 雷达扫描啊~ 有意思~~ 回复 4# afan
雷达扫描?这是什么? 回复 5# pusofalse
类似雷达扫描线,以轴心旋转,扫描到物体就显示其位置,呵呵
当然这个肯定不是这个原理~ 那个弧线能否居内画线,现在的好像是居外的,似乎出界断层了~ 还有,脚本退出后仍有残影的问题~ 那个弧线能否居内画线,现在的好像是居外的,似乎出界断层了~ 还有,脚本退出后仍有残影的问题~
afan 发表于 2010-5-12 09:58 http://www.autoitx.com/images/common/back.gif
我也觉得是这样的,谁能够改进 一下! 本帖最后由 C.L 于 2010-5-13 00:21 编辑
果然很精彩的代码,认识的看了一下,上面的还好理解,不过func f 内的代码就看得不大懂了
有点像极坐标系转直角坐标系
netegg 发表于 2010-5-12 03:24 http://www.autoitx.com/images/common/back.gif
同感,是用极坐标($iR,$iT)来算出是否该点在计算范围内,如果是真,则转换成直角坐标来画点,只是func f 内的算法太复杂了,我看不懂 没搞明白什么东东,脚本运行没有什么反应............ 像我这样的菜鸟看不懂,得去问问张三丰,要不然去陈家沟看看 平面几何,,,都忘光了 这个代码经典。算法看了也看不懂。。。数学还是不好啊。 好像还不大完美的样子 真的 在这个世界上生存 一定要学好 语文 数学 英语
页:
[1]
2