#main_script
import fmeobjects
import numpy as np
from fmeobjects import FMELine, FMEPoint
from math import sqrt, sin, cos, pi
width = 360
N = 1
d = width / N
class FeatureProcessor(object):
def __init__(self):
pass
def draw_uptriangle(self, tx, ty):
corner = 3
_center_point = FMEPoint()
_center_point.setXYZ(float(tx), float(ty), 0)
_points = []
_lines = []
angle_offset = pi / 3
for i in range(corner):
angle = 2 * pi * i / corner + angle_offset
x2 = float(tx) + sin(angle) * 30
y2 = float(ty) + cos(angle) * 30
next_point = FMEPoint()
next_point.setXYZ(x2, y2, 0)
_points.append(next_point)
line = FMELine()
line.appendPoint(_center_point)
line.appendPoint(next_point)
_lines.append(line)
_points.append(_center_point)
return _points, _lines
def pattern(self, size):
l = size / sqrt(4)
points = []
lines = []
for j in range(10):
for i in range(10):
if j % 2 == 0:
dx = 0
else:
dx = sqrt(3) * 15
up_triangle_points, uplines = self.draw_uptriangle(i * sqrt(3) * 30 - dx, j * 45)
points.extend(up_triangle_points)
lines.extend(uplines)
for i in points:
newFeature = fmeobjects.FMEFeature()
newFeature.setGeometry(i)
self.pyoutput(newFeature)
for i in lines:
newFeature = fmeobjects.FMEFeature()
newFeature.setGeometry(i)
self.pyoutput(newFeature)
return points
def input(self, feature: fmeobjects.FMEFeature):
# svg_body = create_svg_no_deps(datastructure,'foo')
pass
def close(self):
points = self.pattern(d)