PGA2D
Documentation for PGA2D.
PGA2D.angle_dl
PGA2D.angle_ll
PGA2D.area_loop
PGA2D.area_ppp
PGA2D.d_ortho_l
PGA2D.direction
PGA2D.direction_coordinates
PGA2D.dist_ll
PGA2D.dist_orient_lp
PGA2D.dist_pp
PGA2D.is_direction
PGA2D.is_line
PGA2D.is_motor
PGA2D.is_point
PGA2D.join_pp
PGA2D.l_bisect_ll
PGA2D.l_bisect_pp
PGA2D.l_ortho_lp
PGA2D.l_para_lp
PGA2D.length_loop
PGA2D.line
PGA2D.line_coordinates
PGA2D.meet_ll
PGA2D.motor_ll
PGA2D.motor_pa
PGA2D.move_ll
PGA2D.move_m
PGA2D.move_pa
PGA2D.normalize
PGA2D.p_bisect_pp
PGA2D.p_proj_lp
PGA2D.point
PGA2D.point_coordinates
PGA2D.reflect_l
PGA2D.angle_dl
— Methodangle_dl(d::PGA2DMV, l2::PGA2DMV)
Calculates the angle between the direction d and the line l.
PGA2D.angle_ll
— Methodangle_ll(l1::PGA2DMV, l2::PGA2DMV)
Calculates the angle between two lines l1 and l2.
PGA2D.area_loop
— Methodarea_loop(points)
Calculates the oriented area of the loop defined by the iteratable points.
PGA2D.area_ppp
— Methodarea_ppp(P1::PGA2DMV, P2::PGA2DMV, P3::PGA2DMV)
Calculates the oriented area of the triangle P1,P2,P3.
PGA2D.d_ortho_l
— Methodd_ortho_l(l::PGA2DMV)
Calculates the direction orthogonal to l.
PGA2D.direction
— Methoddirection(x::Real, y::Real)
Constructs a MultiVector that encodes a direction (x,y).
PGA2D.direction_coordinates
— Methoddirection_coordinates(d::PGA2DMV)
Extracts the direction coordinates (x,y) from a MultiVector P. If the MultiVector does not encode a direction a DomainError is thrown.
PGA2D.dist_ll
— Methoddist_ll(l1::PGA2DMV, l2::PGA2DMV)
Calculates the orthogonal Euclidean distance between parallel lines l1 and l2.
PGA2D.dist_orient_lp
— Methoddist_orient_lp(l::PGA2DMV, P::PGA2DMV)
Calculates the oriented Euclidean distance between the line l and the point P.
PGA2D.dist_pp
— Methoddist_pp(P1::PGA2DMV, P2::PGA2DMV)
Calculates the Euclidean distance between P1 and P2.
PGA2D.is_direction
— Methodis_direction(d::PGA2DMV)
Returns true iff the MultiVector d encodes a direction.
PGA2D.is_line
— Methodis_line(l::PGA2DMV)
Returns true iff the MultiVector l encodes a line.
PGA2D.is_motor
— Methodis_motor(m::PGA2DMV)
Returns true iff the MultiVector m encodes a motor.
PGA2D.is_point
— Methodis_point(P::PGA2DMV)
Returns true iff the MultiVector P encodes a point.
PGA2D.join_pp
— Methodjoin_pp(P1::PGA2DMV, P2::PGA2DMV)
Calculates the line through the points P1 and P2. If P1 and P2 coincide, the result is 0.
PGA2D.l_bisect_ll
— Methodl_bisect_ll(l1::PGA2DMV, l2::PGA2DMV)
Calculates both angle-bisecting lines between l1 and l2 and return them in a tuple of MultiVectors.
PGA2D.l_bisect_pp
— Methodl_bisect_pp(P1::PGA2DMV, P2::PGA2DMV)
Calculates the orthogonal bisecting line between the points P1 and P2.
PGA2D.l_ortho_lp
— Methodl_ortho_lp(l::PGA2DMV, P::PGA2DMV)
Calculates the line that is orthogonal to l and passes through P.
PGA2D.l_para_lp
— Methodl_para_lp(l::PGA2DMV, P::PGA2DMV)
Constructs a parallel line to the line l in the point P.
PGA2D.length_loop
— Methodlength_loop(points)
Calculates the length of the loop defined by the iteratable points.
PGA2D.line
— Methodline(a::Real, b::Real, c::Real)
Constructs a MultiVector that encodes a line ax + bx + c = 0.
PGA2D.line_coordinates
— Methodline_coordinates(l::PGA2DMV)
Extracts the line coordinates (a,b,c) from a MultiVector l. If the MultiVector does not encode a line a DomainError is thrown.
PGA2D.meet_ll
— Methodmeet_ll(l1::PGA2DMV, l2::PGA2DMV)
Calculates the point of intersection of the two line-encoding MultiVectors l1 and l2. If the lines are parallel the result is a direction parallel to the lines. If the lines coincides, the result is 0.
PGA2D.motor_ll
— Methodmotor_ll(l1::PGA2DMV, l2::PGA2DMV)
Calculates the motor that maps the lines l1 to l2.
PGA2D.motor_pa
— Methodmotor_pa(P::PGA2DMV, α::Real)
Calculates the motor for a rotation by the angle α around P. If P is a direction, then the motor describes a translation by α orthogonal to the direction.
PGA2D.move_ll
— Methodmove_ll(x::PGA2DMV, l1::PGA2DMV, l2::PGA2DMV)
Moves x with motor_ll(l1,l2).
PGA2D.move_m
— Methodmove_m(x::PGA2DMV, m::PGA2DMV)
Moves x with the motor m.
PGA2D.move_pa
— Methodmove_pa(x::PGA2DMV, P::PGA2DMV, α::Real)
Moves x with motor_pa(x,P,α).
PGA2D.normalize
— Methodnormalize(x::PGA2DMV)
Scales the MultiVector x so that it has unit norm.
PGA2D.p_bisect_pp
— Methodp_bisect_pp(P1::PGA2DMV, P2::PGA2DMV)
Calculates the midpoint between P1 and P2.
PGA2D.p_proj_lp
— Methodp_proj_lp(l::PGA2DMV, P::PGA2DMV)
Orthogonally projects the point P onto the line l.
PGA2D.point
— Methodpoint(x::Real, y::Real)
Constructs a MultiVector that encodes a point (x,y).
PGA2D.point_coordinates
— Methodpoint_coordinates(P::PGA2DMV)
Extracts the point coordinates (x,y) from a MultiVector P. If the MultiVector does not encode a point a DomainError is thrown.
PGA2D.reflect_l
— Methodreflect_l(x::PGA2DMV, l::PGA2DMV)
Reflects any MultiVector encoded object x on the line l.