diff -r 14e3290c1c0a -r 49c7fd30093c Arrow.st --- a/Arrow.st Sun May 12 23:09:29 1996 +0200 +++ b/Arrow.st Sun May 12 23:41:46 1996 +0200 @@ -110,6 +110,33 @@ v open. [exEnd] + varying the position: + [exBegin] + |v a| + + v := View extent:100@100. + + a := Arrow from:10@20 to:90@20. + a arrowHeadPosition:0. + v addComponent:(StrokingWrapper on:a). + + a := Arrow from:10@30 to:90@30. + a arrowHeadPosition:(1/3). + v addComponent:(StrokingWrapper on:a). + + a := Arrow from:10@40 to:90@40. + a arrowHeadPosition:0.5. + v addComponent:(StrokingWrapper on:a). + + a := Arrow from:10@50 to:90@50. + a arrowHeadPosition:(2/3). + v addComponent:(StrokingWrapper on:a). + + a := Arrow from:10@60 to:90@60. + v addComponent:(StrokingWrapper on:a). + + v open. + [exEnd] " ! ! @@ -124,6 +151,16 @@ " ! ! +!Arrow class methodsFor:'accessing defaults'! + +defaultAngle + ^ DefaultAngle +! + +defaultLength + ^ DefaultLength +! ! + !Arrow methodsFor:'accessing'! arrowHeadAngle @@ -203,11 +240,13 @@ aGC lineStyle:#solid. arrowHeadPosition isNil ifTrue:[ - arrowHeadPoint := endPoint. + pos := 1 ] ifFalse:[ - arrowHeadPoint := startPoint + ((endPoint - startPoint) * arrowHeadPosition). + pos := arrowHeadPosition max:0.0001. ]. + arrowHeadPoint := startPoint + ((endPoint - startPoint) * pos). + len := arrowHeadLength. len isNil ifTrue:[ len := DefaultLength @@ -258,12 +297,12 @@ " "Created: 12.5.1996 / 22:54:11 / cg" - "Modified: 12.5.1996 / 23:04:35 / cg" + "Modified: 12.5.1996 / 23:39:02 / cg" ! ! !Arrow class methodsFor:'documentation'! version - ^ '$Header: /cvs/stx/stx/libbasic2/Arrow.st,v 1.2 1996-05-12 21:09:17 cg Exp $' + ^ '$Header: /cvs/stx/stx/libbasic2/Arrow.st,v 1.3 1996-05-12 21:41:46 cg Exp $' ! ! Arrow initialize!