comment { Mike Williams development transforms } Henon { ; ; One Henon transform ; ; (Iterating this transform creates the Henon fractal) ; transform: a = sin(@angle) b = cos(@angle) if @usescreen x = real(#pixel) - real(#center) y = imag(#pixel) - imag(#center) else x = real(#pixel) - real(@center) y = imag(#pixel) - imag(@center) endif x1 = a*x - b*(y-x^2) y1 = b*x + a*(y-x^2) #pixel = x1 + (0,1)*y1 default: title = "Henon" float param angle caption = "Angle" default = 0.0 hint = "Near the centre of rotation, a Henon transform \ is something like a rotation" endparam param usescreen caption = "Use Screen Center" default = false hint = "If enabled, the Center parameter is ignored and the \ center set on the Location tab is used instead. \ Don't enable this while zooming, or the results may be \ confusing." endparam complex param center caption = "Center" default = (0, 0) hint = "This is the center of the inversion circle." enabled = !@usescreen endparam } Julia { ; ; One Julia transform ; ; (Iterating this transform creates the Julia fractal) ; transform: a = real(@p) b = imag(@p) if @usescreen x = real(#pixel) - real(#center) y = imag(#pixel) - imag(#center) else x = real(#pixel) - real(@center) y = imag(#pixel) - imag(@center) endif x1 = x^2 - y^2 + a y1 = 2*x*y + b #pixel = x1 + (0,1)*y1 default: title = "Julia" param p caption = "Parameter" default = (0,0) endparam param usescreen caption = "Use Screen Center" default = false hint = "If enabled, the Center parameter is ignored and the \ center set on the Location tab is used instead. \ Don't enable this while zooming, or the results may be \ confusing." endparam complex param center caption = "Center" default = (0, 0) hint = "This is the center of the inversion circle." enabled = !@usescreen endparam }