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.