--- 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!