56 lines
1.6 KiB
Python
Executable File
56 lines
1.6 KiB
Python
Executable File
#!/usr/bin/python
|
|
|
|
import math as Math
|
|
|
|
counter = 0
|
|
|
|
def print_list(center , points, name="c"):
|
|
global counter
|
|
print("auto " + name +" = pae::Circle<float>{};")
|
|
print(name + ".center = pae::Vector3<float>{" + \
|
|
"{:0.4f}".format(center[0]) + "f, " + \
|
|
"{:0.4f}".format(center[1]) + "f, " + \
|
|
"{:0.4f}".format(center[2]) +"f};")
|
|
|
|
for v in points:
|
|
print(name + ".points.push_back(std::make_pair(" + str(counter) +", pae::Vector3<float>{" + \
|
|
"{:0.4f}".format(v[0]) + "f, " + \
|
|
"{:0.4f}".format(v[1]) + "f, " + \
|
|
"{:0.4f}".format(v[2]) + "f}));")
|
|
counter += 1
|
|
|
|
def sum_elements(l1,l2):
|
|
return [x+y for x,y in zip(l1,l2)]
|
|
|
|
def multiply_elements(l1,f):
|
|
return [x*f for x in l1]
|
|
|
|
def gen_circle(center, first_vector, second_vector, maximum = 10):
|
|
l = []
|
|
for cpt in range(0,maximum):
|
|
theta = 2 * Math.pi * cpt/maximum
|
|
first = multiply_elements(first_vector, Math.cos(theta))
|
|
second = multiply_elements(second_vector, Math.sin(theta))
|
|
l.append(sum_elements(sum_elements(first, second), center))
|
|
|
|
return l
|
|
|
|
center1 = multiply_elements([1,0,0],2)
|
|
center2 = multiply_elements([0,1,0],2)
|
|
center3 = multiply_elements([-1,0,0],2)
|
|
center4 = multiply_elements([0,-1,0],2)
|
|
|
|
c1 = gen_circle(center1, [0,0,1], [0,1,0])
|
|
c2 = gen_circle(center2, [0,0,1], [1,0,0])
|
|
c3 = gen_circle(center3, [0,0,1], [0,-1,0])
|
|
c4 = gen_circle(center4, [0,0,1], [-1,0,0])
|
|
|
|
|
|
print_list(center1, c1, "c1")
|
|
print()
|
|
print_list(center2, c2, "c2")
|
|
print()
|
|
print_list(center3, c3, "c3")
|
|
print()
|
|
print_list(center4, c4, "c4")
|