This isn't specifically a ConTeXt question, but via it I've run into a seemingly simple problem in METAPOST that I just can't solve. I'm trying to draw a parallelogram by specifying: (1) the length of sides parallel to the x-axis; (2) the total height of the figure; (3) one of the interior angles. This is how I'm trying to solve it: ----------------- % Draw a parallelogram, like so: % % z3 z2 % +-----+ ^ % / / | % / / | % / / |10 units % /BL / | % +-----+ v % z0 z1 % <-----> % 5 units % % Interior angle BL = 87 degrees beginfig(1); z0 = origin; % bottom left z1 = (5,0); % bottom right y2 = y3 = 10; % shape is 10 units high x2 - x3 = x1 - x0; % top edge is the same length as bottom edge % We've completely specified z0 and z1; % We know that the top edge is the same length and angle as the bottom, but lies somewhere on y = 10; % all we have to do is specify one angle and we have a complete parallelogram. % % The following should work as it provides the following information: % the unit vector from z0 to z3 is at an angle 87 degrees anticlockwise from (0,0) -- (1,0). angle(z3-z0) = dir(87); endfig; end; -------------------- This doesn't work; using the angle() function gives the error: Not implemented: angle(unknown pair). Strictly speaking, yes, z3 has an unknown x-coordinate at that time in execution. But I am told that METAPOST is declarative, so I would expect my line of code to mean: "set the x-coordinate of z3 such that angle(z3-z0) = dir(87)". AFAICS that provides all the needed information to draw the shape. So, is there another way I can do what I want without falling into low-level trig? Best, James