Rotation point


How do I set the rotation point of a node? I thought it would by default be the center point but it does not seem to be the case.

Try setting the go:Node.LocationSpot=“Center”.
Several samples, such as DraggableLink, demonstrate this.

My fault, the rotation point IS the center point as I assumed from the beginning. But my problem is when I am setting location spot NOT center the rotation point still seems to be the center point. I would like it to be the (non centered) location point.


Sorry, I misunderstood you.

The RotatingTool does not support setting a rotation point, neither interactively nor programmatically.

But you might be able to get what you want by overriding the RotatingTool.DoRotate method.
It’s normally defined as:

protected virtual void DoRotate(double newangle) { Node node = this.AdornedNode; if (node != null) { this.AdornedNode.SetAngle(this.AdornedElement, newangle, Spot.Center); } }
You could pass a different Spot value instead of the Center.

I have tried with different spots but when rotated it constantly switch between the custom point and the center point resulting in a flickering behavior.

My code
Me.AdornedNode.SetAngle(Me.AdornedElement, newangle, Spot.TopLeft)
When rotate this switch between TopLeft and Center.

I investigated this, and it turns out that RotationAngle is currently assumed to be about the Spot.Center.

In the next release we’ll add a Node.RotationSpot property so that you can do what you want, without changing RotatingTool.