diff options
author | jaseg <git@jaseg.de> | 2021-06-13 15:00:17 +0200 |
---|---|---|
committer | jaseg <git@jaseg.de> | 2021-06-13 15:00:17 +0200 |
commit | 4eb0e063bcd34c21b737023aa6ed5baed80658d1 (patch) | |
tree | 3a56ef7d05f4f64cde930f2432119986e4aab49d /gerbonara/gerber/panelize/utility.py | |
parent | 889ea37d9b66cbfb7a61795c7750b9f4311faa3f (diff) | |
download | gerbonara-4eb0e063bcd34c21b737023aa6ed5baed80658d1.tar.gz gerbonara-4eb0e063bcd34c21b737023aa6ed5baed80658d1.tar.bz2 gerbonara-4eb0e063bcd34c21b737023aa6ed5baed80658d1.zip |
Repo re-org, make gerberex tests run
Diffstat (limited to 'gerbonara/gerber/panelize/utility.py')
-rw-r--r-- | gerbonara/gerber/panelize/utility.py | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/gerbonara/gerber/panelize/utility.py b/gerbonara/gerber/panelize/utility.py new file mode 100644 index 0000000..37de5e8 --- /dev/null +++ b/gerbonara/gerber/panelize/utility.py @@ -0,0 +1,27 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright 2019 Hiroshi Murayama <opiopan@gmail.com> + +from math import cos, sin, pi, sqrt + +def rotate(x, y, angle, center): + x0 = x - center[0] + y0 = y - center[1] + angle = angle * pi / 180.0 + return (cos(angle) * x0 - sin(angle) * y0 + center[0], + sin(angle) * x0 + cos(angle) * y0 + center[1]) + +def is_equal_value(a, b, error_range=0): + return (a - b) * (a - b) <= error_range * error_range + +def is_equal_point(a, b, error_range=0): + return is_equal_value(a[0], b[0], error_range) and \ + is_equal_value(a[1], b[1], error_range) + +def normalize_vec2d(vec): + length = sqrt(vec[0] * vec[0] + vec[1] * vec[1]) + return (vec[0] / length, vec[1] / length) + +def dot_vec2d(vec1, vec2): + return vec1[0] * vec2[0] + vec1[1] * vec2[1]
\ No newline at end of file |