Constraint Conflicts |
Top |
You might try to add more constraints than necessary, creating a situation in which the constraint you’re trying to add conflicts with existing ones. In such cases, Geometry Expressions cannot find a construction sequence. If you enter a constraint for a geometry object that is already constrained, you’ll see a dialog such as this: ![]() You can resolve constraint conflicts in any of three ways:
![]() When you select one of these constraints (Figure 2 shows the result of clicking on θ), the highlight of the current constraint changes to green.
![]() OK adds your new constraint, then calculates and displays the new value of the variable associated with the relaxed constraint (Figure 3). ![]() You’ll need to resolve constraints conflicts whenever you add a new constraint that is:
Below is an example of a constraint that isn't independent: three sides already define the triangle, so θ is dependent on the side lengths. ![]() To resolve this conflict, you can eliminate one of the constraints — either one of the problematic side lengths, or θ. Below is an example of a constraint that, while it appears to be independent, would not be so in all cases. The line segment has been assigned the equation Y=X, and the point A has been assigned the coordinates (0,0). The point (0,0) does indeed lie on the line Y=X, but other values for its coordinates might not. For example, if you tried to constrain A to be at coordinates (1,0), the Y=X constraint would be violated. Constraints in Geometry Expressions must be applicable generically, rather than relying on specific values. ![]() To resolve this conflict, instead of setting the equation of the line, you could set its slope: ![]() Some problems seem to violate neither of these rules; nevertheless, Geometry Expressions can’t find a construction sequence that satisfies them. For example, suppose you’re trying to determine the length of the side of a regular pentagon inscribed in a circle of radius r. You might try to draw the pentagon by constraining its sides to be of equal length: ![]() The constraints are certainly independent, so why the prompt to resolve a conflict? The answer lies in the details of how Geometry Expressions converts the constraint description into a construction sequence. A construction sequence is a sequence of primitive geometrical operations, each of which creates a single geometric object. For example: Create a point on a given line, distance a from a given point. or: Create a circle tangent to three given circles. To draw the specified pentagon, Geometry Expressions starts with a circle of a particular radius. It then constructs a point on the circumference at an arbitrary location. Next, it must construct another point, this time one whose location is not arbitrary. But calculating the point's position would require simultaneously resolving all the congruent distance constraints. Geometry Expressions can’t resolve that many constraints at once; it can resolve them only in batches of two or three, with each batch defining just one geometrical object. So Geometry Expressions is unable to create the construction sequence. To solve this problem, you need to try a different approach. For example, specify the angles from the center of the circle, which enables Geometry Expressions to construct the points one by one: ![]() |