Hello, i probably made some embarassing mistake, but as i cannot find it, i ask you to have a look at this method. It should calculate the angle between two vectors. And vectors are instances of Point (perhaps here is already a misconception?). It is used in my flocking simulation PharoBoids (http://smalltalkhub.com/#!/~MartinWalk/Boids) Here is my version of the method: angleBetween: vector1 and: vector2 onError: aBlock | cosinusOfAngle innerProductOfVectors productOfVectorsLengths| innerProductOfVectors := (vector1 dotProduct: vector2). productOfVectorsLengths := (vector1 r) * (vector2 r). productOfVectorsLengths = 0 ifTrue: [ ^ aBlock value ]. cosinusOfAngle := innerProductOfVectors / productOfVectorsLengths. ^ cosinusOfAngle arcCos But my Boids behave wrong when i use it. I found another implementation of the same problem by Igor Stasenko which works and looks like this: angleBetween: p1 and: p2 ifDegenerate: aBlock " Calculate an angle (in radians) between two vectors. Evaluate a block, in case if calculation not possible because one of the vectors has zero length " | x1 y1 x2 y2 dot2 n2 | x1 := p1 x. y1 := p1 y. x2 := p2 x. y2 := p2 y. dot2 := x1 * x2 + (y1 * y2). dot2 := dot2 * dot2. n2 := (x1*x1 + (y1*y1)) * (x2*x2 + (y2*y2)). n2 = 0 ifTrue: [ ^ aBlock value ]. ^ (dot2 / n2) arcCos Can anybody explain the problem of my method? M. -- View this message in context: http://forum.world.st/Calculate-angle-between-two-vectors-probably-Igor-tp47... Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.