constraints.types.perpendicular.PerpendicularConstraint

constraints.types.perpendicular.PerpendicularConstraint(
    vector1,
    vector2,
    *,
    weight=1.0,
)

Constraint that forces two vectors to be perpendicular.

This is equivalent to AngleConstraint with angle=π/2.

Reduces DOF by 1 (one scalar equation: dot product = 0).

Parameters

Name Type Description Default
vector1 Vector First direction vector (Vector parameter) required
vector2 Vector Second direction vector (Vector parameter) required

Example

v1 = Vector([1, 0, 0], free=True, name='v1')
v2 = Vector([0, 1, 0], free=True, name='v2')
constraint = PerpendicularConstraint(v1, v2)

Methods

Name Description
compute_residual Compute perpendicular constraint residual: v1 · v2.
dof_reduction Perpendicular constraint adds 1 scalar equation.
get_parameters Return both vectors involved in the perpendicular constraint.

compute_residual

constraints.types.perpendicular.PerpendicularConstraint.compute_residual(
    param_values,
)

Compute perpendicular constraint residual: v1 · v2.

Two vectors are perpendicular iff their dot product is zero.

Parameters

Name Type Description Default
param_values dict[str, Array] Dict with keys matching parameter names required

Returns

Name Type Description
Array Scalar residual (dot product, should be 0 when satisfied)

dof_reduction

constraints.types.perpendicular.PerpendicularConstraint.dof_reduction()

Perpendicular constraint adds 1 scalar equation.

get_parameters

constraints.types.perpendicular.PerpendicularConstraint.get_parameters()

Return both vectors involved in the perpendicular constraint.