Shear

Horizontal Shear

Vertical Shear

A = (5, 2)
B = (5, 7)
C = (9, 7)
D = (9, 6)
E = (7, 6)
F = (7, 2)
poly1, a, b, c, d, e, f = Polygon(A, B, C, D, E, F)
G = (2, 1)
g = Line(G, xAxis)
h = OrthogonalLine(G, g)
i = false
j = false
xG: x(G)
yG: y(G)
k = 1 (slider from -5 to 5, step 0.1)
AGdeltah: y(A) - y(G)
BGdeltah: y(B) - y(G)
CGdeltah: y(C) - y(G)
DGdeltah: y(D) - y(G)
EGdeltah: y(E) - y(G)
FGdeltah: y(F) - y(G)
AGdeltaw: x(A) - x(G)
BGdeltaw: x(B) - x(G)
CGdeltaw: x(C) - x(G)
DGdeltaw: x(D) - x(G)
EGdeltaw: x(E) - x(G)
FGdeltaw: x(F) - x(G)
AS = If(i, (x(A) + k * AGdeltah, y(A)), If[j, (x(A), y(A) + k * AGdeltaw), (x(A), y(A))])
BS = If(i, (x(B) + k * BGdeltah, y(B)), If[j, (x(B), y(B) + k * BGdeltaw), (x(B), y(B))])
CS = If(i, (x(C) + k * CGdeltah, y(C)), If[j, (x(C), y(C) + k * CGdeltaw), (x(C), y(C))])
DS = If(i, (x(D) + k * DGdeltah, y(D)), If[j, (x(D), y(D) + k * DGdeltaw), (x(D), y(D))])
ES = If(i, (x(E) + k * EGdeltah, y(E)), If[j, (x(E), y(E) + k * EGdeltaw), (x(E), y(E))])
FS = If(i, (x(F) + k * FGdeltah, y(F)), If[j, (x(F), y(F) + k * FGdeltaw), (x(F), y(F))])
poly2, bs, as, fs, es, ds, cs = Polygon(BS, AS, FS, ES, DS, CS)

Tool: Complex Multiplication (command ComplexMultiplication)
Select Points at O(0, 0), P(0, -1), A and B for A*B
Input: O, P, A, B
Output: j, AB

c = Circle(O, A)
d = Circle(O, B)
D = Intersect(c, xAxis, 2)
b = Segment(O, A)
f = Segment(O, B)
G = Intersect(d, xAxis, 1)
g = Circle(D, P, G)
E = Intersect(g, yAxis, 2)
e = Circle(O, E)
a, h = AngularBisector(f, b)
D' = Mirror(D, a)
i = Ray(O, D')
AB = Intersect(e, i, 1)
j = Segment(O, AB)

Tool: Complex Division (command ComplexDivision)
Select Points O(0, 0), P(0, -1), A and B for A/B
Input: O, P, A, B
Output: l, C

A/B

c = Circle(O, A)
d = Circle(O, B)
D = Intersect(c, xAxis, 2)
e = AngularBisector(A, O, D)
B' = Mirror(B, e)
f = Ray(O, B')
E = Intersect(c, yAxis, 1)
F = Intersect(d, xAxis, 1)
g = Segment(F, E)
G = Midpoint(g)
h = OrthogonalLine(G, g)
i = Segment(P, F)
H = Midpoint(i)
j = OrthogonalLine(H, i)
I = Intersect(h, j)
k = Circle(I, F)
J = Intersect(k, xAxis, 2)
p = Circle(O, J)
C = Intersect(p, f)
l = Segment(O, C)

Tool: Complex Addition (command ComplexAddition)
Select Points O(0, 0), A and B for A + B
Input: O, A, B
Output: C', c

A + B

u = Vector(O, B)
C' = Translate(A, u)
c = Segment(O, C')

Tool: Complex Subtraction (command ComplexSubtraction)
Select Points O(0, 0), A and B for A - B
Input: O, A, B
Output: c, A'

A - B

u = Vector(B, O)
A'_1 = Translate(A, u)
A' = Translate(A, u)
c = Segment(O, A')