vb.net - Rotation maths not working correctly in WPF -


i'm using adorner class create rotation thumb controls. here's relevant part of class:

private initialangle double private startvector vector private currentpoint, centerpoint point private rotatetransform rotatetransform  private rotatethumb thumb  public sub new(adornedelement uielement)   mybase.new(adornedelement)   addhandler rotatethumb.dragstarted, addressof handlerotatestart   addhandler rotatethumb.dragdelta, addressof handlerotate end sub  private sub handlerotatestart(sender object, e dragstartedeventargs)   dim ae frameworkelement = trycast(me.adornedelement, frameworkelement)   centerpoint = new point(ae.width / 2, ae.height / 2)    dim startpoint point = mouse.getposition(ae.parent)   startvector = point.subtract(centerpoint, startpoint)    rotatetransform = trycast(ae.rendertransform, rotatetransform)   if rotatetransform nothing     ae.rendertransform = new rotatetransform(0, centerpoint.x, centerpoint.y)     initialangle = 0   else     initialangle = rotatetransform.angle   end if end sub  private sub handlerotate(sender object, e dragdeltaeventargs)   dim ae frameworkelement = trycast(me.adornedelement, frameworkelement)    currentpoint = mouse.getposition(ae.parent)   dim deltavector vector = point.subtract(centerpoint, currentpoint)    dim angle double = vector.anglebetween(deltavector, startvector)    dim myrotatetransform = trycast(ae.rendertransform, rotatetransform)   myrotatetransform.angle = initialangle + math.round(angle, 0)   ae.invalidatemeasure() end sub  protected overrides sub onrender(drawingcontext drawingcontext)   mybase.onrender(drawingcontext)    if mouse.leftbutton = mousebuttonstate.pressed     drawingcontext.drawellipse(new solidcolorbrush(color.fromargb(100, 0, 255, 0)), new pen(brushes.green, 1), centerpoint, 10, 10)     drawingcontext.drawellipse(new solidcolorbrush(color.fromargb(100, 255, 0, 0)), new pen(brushes.red, 1), currentpoint, 7, 7)   end if end sub 

while (kind of) rotate element, problem currentpoint not appear mouse pointer (the red ellipse of onrender doesn't follow mouse correctly). suspect might have rendertransform apply on element affecting drawingcontext. or mathematics i'm doing here?


Comments

Popular posts from this blog

How has firefox/gecko HTML+CSS rendering changed in version 38? -

javascript - Complex json ng-repeat -

jquery - Cloning of rows and columns from the old table into the new with colSpan and rowSpan -