1 /** This file is part of Shapes.
3 ** Shapes is free software: you can redistribute it and/or modify
4 ** it under the terms of the GNU General Public License as published by
5 ** the Free Software Foundation, either version 3 of the License, or
8 ** Shapes is distributed in the hope that it will be useful,
9 ** but WITHOUT ANY WARRANTY; without even the implied warranty of
10 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 ** GNU General Public License for more details.
13 ** You should have received a copy of the GNU General Public License
14 ** along with Shapes. If not, see <http://www.gnu.org/licenses/>.
16 ** Copyright 2008, 2014, 2015 Henrik Tidefelt
19 MetaPostArrow: \ normal p ahLength:void ahAngle:30° →
21 theLength: [if [typeof ahLength]=Data..Type..§Void @width*6 ahLength]
22 l: [Numeric..Math..min theLength 0.9*[Numeric..Math..abs p]]
24 rev: [Geometry..reverse [[shift z]*[Geometry3D..rotate dir:normal angle: ~ahAngle*0.5]*[shift ~z] e]]
26 picture: [Graphics..fill [[shift z]*[Geometry3D..rotate dir:normal angle:ahAngle*0.5]*[shift ~z] e]--rev--cycle]
28 [Graphics..fill [[shift z]*[Geometry3D..rotate dir:normal angle:ahAngle*0.5]*[shift ~z] e]--[Geometry..reverse [[shift z]*[Geometry3D..rotate dir:normal angle: ~ahAngle*0.5]*[shift ~z] e]]--cycle]
29 cut: 0.8*[Numeric..Math..cos ahAngle*0.5]*theLength