Initial commit of Roster
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
import math
|
||||
from typing import NamedTuple
|
||||
|
||||
# For more details, see the PDF Reference, 6th Ed., Section 4.2.2 ("Common
|
||||
# Transformations")
|
||||
|
||||
|
||||
class CTM(NamedTuple):
|
||||
a: float
|
||||
b: float
|
||||
c: float
|
||||
d: float
|
||||
e: float
|
||||
f: float
|
||||
|
||||
@property
|
||||
def scale_x(self) -> float:
|
||||
return math.sqrt(pow(self.a, 2) + pow(self.b, 2))
|
||||
|
||||
@property
|
||||
def scale_y(self) -> float:
|
||||
return math.sqrt(pow(self.c, 2) + pow(self.d, 2))
|
||||
|
||||
@property
|
||||
def skew_x(self) -> float:
|
||||
return (math.atan2(self.d, self.c) * 180 / math.pi) - 90
|
||||
|
||||
@property
|
||||
def skew_y(self) -> float:
|
||||
return math.atan2(self.b, self.a) * 180 / math.pi
|
||||
|
||||
@property
|
||||
def translation_x(self) -> float:
|
||||
return self.e
|
||||
|
||||
@property
|
||||
def translation_y(self) -> float:
|
||||
return self.f
|
||||
Reference in New Issue
Block a user