Расчет фрактала на Go, Rust, Python
This commit is contained in:
38
main.py
Normal file
38
main.py
Normal file
@@ -0,0 +1,38 @@
|
||||
import argparse
|
||||
|
||||
|
||||
def fractal(size: int, depth: int, g2: float, g3: float):
|
||||
xi = yi = -2
|
||||
xf = yf = 2
|
||||
|
||||
code = ""
|
||||
for y in range(size):
|
||||
zy = y * (yf - yi) / (size - 1) + yi
|
||||
for x in range(size):
|
||||
zx = x * (xf - xi) / (size - 1) + xi
|
||||
z = zx + zy * 1j
|
||||
for i in range(depth):
|
||||
if abs(z) > 2:
|
||||
code += str(i)
|
||||
break
|
||||
z = (z**4 + 0.5 * g2 * z * z + 2 * g3 * z + 1 / 16 * g2**2) / (
|
||||
4 * z**3 - g2 * z - g3
|
||||
)
|
||||
return code
|
||||
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument("--size", "-s", type=int, default=128, required=False)
|
||||
parser.add_argument("--depth", "-d", type=int, default=8, required=False)
|
||||
parser.add_argument("-g2", type=float, default=0.0, required=False)
|
||||
parser.add_argument("-g3", type=float, default=1.0, required=False)
|
||||
|
||||
args, _ = parser.parse_known_args()
|
||||
|
||||
code = fractal(args.size, args.depth, args.g2, args.g3)
|
||||
print(code)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user