使用RotateTransform旋转的对象“失控”

时间:2018-10-17 15:03:38

标签: c# user-interface rotation

我正在尝试围绕一个点旋转几个矩形。第一个Rectangle围绕其中心正确旋转。 其他矩形(位于第一个矩形的拐角处)在开始时呈核心旋转,这意味着它们停留在其拐角处。 但是,在196度左右,它们开始移动的速度越来越快。此外,根据主要矩形的中心和鼠标拖动的速度,发生这种情况的点似乎也有所不同。 我为每个矩形使用不同的RotateTransform对象,并将中心点转换为对应的对象。

this.rotateSurroundingRectangle.Angle = this.angle;
this.rotateSurroundingRectangle.CenterX = rotationCenter.X;
this.rotateSurroundingRectangle.CenterY = rotationCenter.Y;

rrt1.Angle = this.angle;
rrt1.CenterX = this.surroundingRectangle.TranslatePoint(rotationCenter,this.rt1).X;
rrt1.CenterY = this.surroundingRectangle.TranslatePoint(rotationCenter, this.rt1).Y;

rrt2.Angle = this.angle;
rrt2.CenterX = this.surroundingRectangle.TranslatePoint(rotationCenter, this.rt2).X;
rrt2.CenterY = this.surroundingRectangle.TranslatePoint(rotationCenter, this.rt2).Y;

rrt3.Angle = this.angle;
rrt3.CenterX = this.surroundingRectangle.TranslatePoint(rotationCenter, this.rt3).X;
rrt3.CenterY = this.surroundingRectangle.TranslatePoint(rotationCenter, this.rt3).Y;

rrt4.Angle = this.angle;
rrt4.CenterX = this.surroundingRectangle.TranslatePoint(rotationCenter, this.rt4).X;
rrt4.CenterY = this.surroundingRectangle.TranslatePoint(rotationCenter, this.rt4).Y;

Logger.Logger.Write("C:\\Users\\Maik\\Desktop\\coord.log", "angle : " + this.rotateSurroundingRectangle.Angle);
Logger.Logger.Write("C:\\Users\\Maik\\Desktop\\coord.log", "sr : " + this.rotateSurroundingRectangle.CenterX + " ; " + this.rotateSurroundingRectangle.CenterY);
Logger.Logger.Write("C:\\Users\\Maik\\Desktop\\coord.log", "rrt1 : " + this.rrt1.CenterX + " ; " + this.rrt1.CenterY);
Logger.Logger.Write("C:\\Users\\Maik\\Desktop\\coord.log", "rrt2 : " + this.rrt2.CenterX + " ; " + this.rrt2.CenterY);
Logger.Logger.Write("C:\\Users\\Maik\\Desktop\\coord.log", "rrt3 : " + this.rrt3.CenterX + " ; " + this.rrt3.CenterY);
Logger.Logger.Write("C:\\Users\\Maik\\Desktop\\coord.log", "rrt4 : " + this.rrt4.CenterX + " ; " + this.rrt4.CenterY);

这里有一些重要值(我认为)的“日志”:

16:58:03 : angle : 115,34617942079
16:58:03 : sr : 16 ; 16
16:58:03 : rrt1 : 16 ; 16,0000000000003
16:58:03 : rrt2 : -5,99999999999977 ; 16,0000000000001
16:58:03 : rrt3 : -6,00000000000011 ; -5,9999999999994
16:58:03 : rrt4 : 15,9999999999998 ; -6,0000000000002
16:58:03 : angle : 115,34617942079
16:58:03 : sr : 16 ; 16
16:58:03 : rrt1 : 15,9999999999998 ; 16,0000000000003
16:58:03 : rrt2 : -5,99999999999983 ; 16,0000000000004
16:58:03 : rrt3 : -6,00000000000074 ; -5,99999999999986
16:58:03 : rrt4 : 15,9999999999999 ; -6,00000000000031
16:58:03 : angle : 122,275649714906
16:58:03 : sr : 16 ; 16
16:58:03 : rrt1 : 15,9999999999994 ; 15,9999999999999
16:58:03 : rrt2 : -6,00000000000017 ; 16,0000000000005
16:58:03 : rrt3 : -6,00000000000131 ; -6,00000000000088
16:58:03 : rrt4 : 16,0000000000001 ; -6,00000000000043
16:58:03 : angle : 124,380350775885
16:58:03 : sr : 16 ; 16
16:58:03 : rrt1 : 15,9999999999992 ; 15,9999999999992
16:58:03 : rrt2 : -6,00000000000068 ; 16,0000000000003
16:58:03 : rrt3 : -6,00000000000136 ; -6,00000000000253
16:58:03 : rrt4 : 16,0000000000005 ; -6,00000000000026
16:58:03 : angle : 128,290170458473
16:58:03 : sr : 16 ; 16
16:58:03 : rrt1 : 15,9999999999993 ; 15,9999999999982
16:58:03 : rrt2 : -6,00000000000142 ; 15,9999999999995
16:58:03 : rrt3 : -6,00000000000028 ; -6,00000000000429
16:58:03 : rrt4 : 16,000000000001 ; -5,99999999999963
16:58:03 : angle : 131,820178302962
16:58:03 : sr : 16 ; 16
16:58:03 : rrt1 : 16,0000000000003 ; 15,9999999999973
16:58:03 : rrt2 : -6,00000000000193 ; 15,9999999999977
16:58:03 : rrt3 : -5,99999999999721 ; -6,000000000005
16:58:03 : rrt4 : 16,0000000000014 ; -5,99999999999829
16:58:03 : angle : 136,468810671556
16:58:03 : sr : 16 ; 16
16:58:03 : rrt1 : 16,0000000000022 ; 15,9999999999969
16:58:03 : rrt2 : -6,00000000000188 ; 15,9999999999947
16:58:03 : rrt3 : -5,99999999999187 ; -6,00000000000301
16:58:03 : rrt4 : 16,0000000000012 ; -5,99999999999619
16:58:03 : angle : 137,862415640348
16:58:03 : sr : 16 ; 16
16:58:03 : rrt1 : 16,000000000006 ; 15,9999999999986
16:58:03 : rrt2 : -5,99999999999972 ; 15,999999999991
16:58:03 : rrt3 : -5,99999999998386 ; -5,99999999999437
16:58:03 : rrt4 : 15,9999999999995 ; -5,99999999999369
16:58:03 : angle : 137,862415640348
16:58:03 : sr : 16 ; 16
16:58:03 : rrt1 : 16,0000000000113 ; 16,0000000000052
16:58:03 : rrt2 : -5,99999999999346 ; 15,9999999999886
16:58:03 : rrt3 : -5,99999999997567 ; -5,99999999997391
16:58:03 : rrt4 : 15,9999999999949 ; -5,99999999999244
16:58:03 : angle : 140,710603884391
16:58:03 : sr : 16 ; 16
16:58:03 : rrt1 : 16,0000000000168 ; 16,0000000000198
16:58:03 : rrt2 : -5,99999999998118 ; 15,9999999999916
16:58:03 : rrt3 : -5,9999999999734 ; -5,99999999993696
16:58:03 : rrt4 : 15,9999999999861 ; -5,9999999999954
16:58:03 : angle : 144,246124561209
16:58:03 : sr : 16 ; 16
16:58:03 : rrt1 : 16,0000000000188 ; 16,0000000000469
16:58:03 : rrt2 : -5,99999999996101 ; 16,0000000000077
16:58:03 : rrt3 : -5,99999999998863 ; -5,99999999987909
16:58:03 : rrt4 : 15,999999999972 ; -6,0000000000079
16:58:03 : angle : 145,304858597758
16:58:03 : sr : 16 ; 16
16:58:03 : rrt1 : 16,0000000000073 ; 16,0000000000894
16:58:03 : rrt2 : -5,99999999993338 ; 16,0000000000518
16:58:03 : rrt3 : -6,0000000000482 ; -5,99999999980713
16:58:03 : rrt4 : 15,9999999999534 ; -6,0000000000411
16:58:03 : angle : 145,304858597758
16:58:03 : sr : 16 ; 16
16:58:03 : rrt1 : 15,9999999999623 ; 16,0000000001414
16:58:03 : rrt2 : -5,99999999990825 ; 16,0000000001465
16:58:03 : rrt3 : -6,00000000019782 ; -5,9999999997612
16:58:03 : rrt4 : 15,9999999999383 ; -6,00000000010999
16:58:03 : angle : 146,309944893081
16:58:03 : sr : 16 ; 16
16:58:03 : rrt1 : 15,9999999998525 ; 16,0000000001772
16:58:03 : rrt2 : -5,99999999991303 ; 16,0000000003166
16:58:03 : rrt3 : -6,00000000049477 ; -5,99999999983703
16:58:03 : rrt4 : 15,9999999999479 ; -6,00000000023039
16:58:03 : angle : 148,172566370079
16:58:03 : sr : 16 ; 16
16:58:03 : rrt1 : 15,9999999996339 ; 16,0000000001347
16:58:03 : rrt2 : -6,00000000000603 ; 16,0000000005824
16:58:03 : rrt3 : -6,00000000100101 ; -6,00000000022641
16:58:03 : rrt4 : 16,0000000000252 ; -6,00000000041285
16:58:03 : angle : 148,172566370079
16:58:03 : sr : 16 ; 16
16:58:03 : rrt1 : 15,9999999992519 ; 15,9999999998545
16:58:03 : rrt2 : -6,00000000031821 ; 16,0000000009093
16:58:03 : rrt3 : -6,00000000173213 ; -6,00000000133224
16:58:03 : rrt4 : 16,0000000002645 ; -6,00000000062408
16:58:03 : angle : 149,036256657814
16:58:03 : sr : 16 ; 16
16:58:03 : rrt1 : 15,9999999986853 ; 15,9999999990534
16:58:03 : rrt2 : -6,00000000105888 ; 16,0000000011441
16:58:03 : rrt3 : -6,00000000253203 ; -6,00000000377742
16:58:03 : rrt4 : 16,0000000008124 ; -6,00000000074141
16:58:03 : angle : 151,260217729346
16:58:03 : sr : 16 ; 16
16:58:03 : rrt1 : 15,9999999979877 ; 15,9999999972558
16:58:03 : rrt2 : -6,00000000253738 ; 16,0000000009271
16:58:03 : rrt3 : -6,00000000293574 ; -6,00000000850122
16:58:03 : rrt4 : 16,0000000018814 ; -6,00000000048698
16:58:03 : angle : 151,260217729346
16:58:03 : sr : 16 ; 16
16:58:04 : rrt1 : 15,999999997543 ; 15,9999999936682
16:58:04 : rrt2 : -6,00000000520788 ; 15,9999999992357
16:58:04 : rrt3 : -6,00000000142211 ; -6,00000001663892
16:58:04 : rrt4 : 16,0000000037653 ; -5,99999999910364
16:58:04 : angle : 152,700440376596
16:58:04 : sr : 16 ; 16
16:58:04 : rrt1 : 15,9999999982638 ; 15,9999999872452
16:58:04 : rrt2 : -6,00000000948523 ; 15,9999999942062
16:58:04 : rrt3 : -5,99999999505451 ; -6,00000002915652
16:58:04 : rrt4 : 16,0000000067001 ; -5,99999999523419
16:58:04 : angle : 153,434961576136
16:58:04 : sr : 16 ; 16
16:58:04 : rrt1 : 16,000000002415 ; 15,9999999769169
16:58:04 : rrt2 : -6,00000001537808 ; 15,9999999821468
16:58:04 : rrt3 : -5,99999997759187 ; -6,00000004521371
16:58:04 : rrt4 : 16,0000000105615 ; -5,99999998624833
16:58:04 : angle : 153,434961576136
16:58:04 : sr : 16 ; 16
16:58:04 : rrt1 : 16,0000000148982 ; 15,9999999629333
16:58:04 : rrt2 : -6,00000002114848 ; 15,9999999567206
16:58:04 : rrt3 : -5,99999993732922 ; -6,00000005762695
16:58:04 : rrt4 : 16,0000000138581 ; -5,99999996775091
16:58:04 : angle : 154,798889404624
16:58:04 : sr : 16 ; 16
16:58:04 : rrt1 : 16,0000000441612 ; 15,9999999481984
16:58:04 : rrt2 : -6,00000002185584 ; 15,9999999082544
16:58:04 : rrt3 : -5,99999985608611 ; -6,00000004849085
16:58:04 : rrt4 : 16,0000000126655 ; -5,9999999331784
16:58:04 : angle : 156,194068990316
16:58:04 : sr : 16 ; 16
16:58:04 : rrt1 : 16,0000001054742 ; 15,9999999433777
16:58:04 : rrt2 : -6,00000000481998 ; 15,999999822369
16:58:04 : rrt3 : -5,99999970484384 ; -5,99999997371924
16:58:04 : rrt4 : 15,9999999972814 ; -5,99999987313947
16:58:04 : angle : 158,198602542266
16:58:04 : sr : 16 ; 16
16:58:04 : rrt1 : 16,0000002244336 ; 15,9999999741578
16:58:04 : rrt2 : -5,99999994332461 ; 15,9999996784914
16:58:04 : rrt3 : -5,99999944055855 ; -5,9999997415469
16:58:04 : rrt4 : 15,9999999476426 ; -5,99999977479746
16:58:04 : angle : 162,47444249888
16:58:04 : sr : 16 ; 16
16:58:04 : rrt1 : 16,0000004462315 ; 16,0000000838894
16:58:04 : rrt2 : -5,99999979246365 ; 15,9999994344021
16:58:04 : rrt3 : -5,99999898491308 ; -5,99999918941614
16:58:04 : rrt4 : 15,9999998298999 ; -5,9999996112706
16:58:04 : angle : 164,248836488113
16:58:04 : sr : 16 ; 16
16:58:04 : rrt1 : 16,0000008529344 ; 16,0000003961663
16:58:04 : rrt2 : -5,99999943918317 ; 15,9999990422818
16:58:04 : rrt3 : -5,99999822798395 ; -5,99999792823843
16:58:04 : rrt4 : 15,9999995606628 ; -5,99999935640056
16:58:04 : angle : 164,248836488113
16:58:04 : sr : 16 ; 16
16:58:04 : rrt1 : 16,0000015662976 ; 16,0000012026435
16:58:04 : rrt2 : -5,99999863944299 ; 15,999998489863
16:58:04 : rrt3 : -5,99999708490793 ; -5,99999514294115
16:58:04 : rrt4 : 15,9999989631115 ; -5,99999901844222
16:58:04 : angle : 165,963765910793
16:58:04 : sr : 16 ; 16
16:58:04 : rrt1 : 16,0000027941458 ; 16,0000030470586
16:58:04 : rrt2 : -5,99999695324709 ; 15,9999977637605
16:58:04 : rrt3 : -5,99999543486229 ; -5,99998932369397
16:58:04 : rrt4 : 15,9999977191192 ; -5,99999861938579
16:58:04 : angle : 167,319625044096
16:58:04 : sr : 16 ; 16
16:58:04 : rrt1 : 16,0000048512755 ; 16,0000070847123
16:58:04 : rrt2 : -5,99999348992367 ; 15,9999970111035
16:58:04 : rrt3 : -5,99999332464711 ; -5,99997744246491
16:58:04 : rrt4 : 15,9999951908079 ; -5,99999832812068
16:58:04 : angle : 168,95906749851
16:58:04 : sr : 16 ; 16
16:58:04 : rrt1 : 16,0000082559623 ; 16,0000156193921
16:58:04 : rrt2 : -5,99998652794045 ; 15,9999966575668
16:58:04 : rrt3 : -5,99999109284943 ; -5,99995359664541
16:58:04 : rrt4 : 15,9999901504491 ; -5,99999857347649
16:58:04 : angle : 173,367490299338
16:58:04 : sr : 16 ; 16
16:58:04 : rrt1 : 16,0000146526186 ; 16,0000328266383
16:58:04 : rrt2 : -5,99997275999056 ; 15,9999964837453
16:58:04 : rrt3 : -5,9999876049344 ; -5,99990607221076
16:58:04 : rrt4 : 15,9999802020526 ; -5,99999944317841
16:58:04 : angle : 176,009089876305
16:58:04 : sr : 16 ; 16
16:58:04 : rrt1 : 16,0000269850308 ; 16,0000674517855
16:58:04 : rrt2 : -5,99994534131019 ; 15,9999967801642
16:58:04 : rrt3 : -5,99998177713178 ; -5,99981110390758
16:58:04 : rrt4 : 15,9999604133593 ; -6,00000164286638
16:58:04 : angle : 177,397439786067
16:58:04 : sr : 16 ; 16
16:58:04 : rrt1 : 16,000050879402 ; 16,0001371443101
16:58:04 : rrt2 : -5,99989059279358 ; 15,999998531571
16:58:04 : rrt3 : -5,99997215038286 ; -5,99962113806856
16:58:04 : rrt4 : 15,9999209421493 ; -6,00000687386751
16:58:04 : angle : 178,726970975252
16:58:04 : sr : 16 ; 16
16:58:04 : rrt1 : 16,0000986993492 ; 16,0002764475458
16:58:04 : rrt2 : -5,99978117996761 ; 16,0000019249678
16:58:04 : rrt3 : -5,99995272470892 ; -5,99924131934665
16:58:04 : rrt4 : 15,9998420565266 ; -6,00001725502432
16:58:04 : angle : 178,726970975252
16:58:04 : sr : 16 ; 16
16:58:04 : rrt1 : 16,0001912325796 ; 16,000557075419
16:58:04 : rrt2 : -5,99956245671126 ; 16,0000135702372
16:58:04 : rrt3 : -5,99992231648207 ; -5,99848110007923
16:58:04 : rrt4 : 15,9996845353871 ; -6,00004151437867
16:58:04 : angle : 183,731394021804
16:58:04 : sr : 16 ; 16
16:58:04 : rrt1 : 16,0004183137258 ; 16,0010857464242
16:58:04 : rrt2 : -5,9991249578278 ; 15,9999701647627
16:58:05 : rrt3 : -5,99974594902699 ; -5,99698195346519
16:58:05 : rrt4 : 15,9993670378069 ; -6,00004174815075
16:58:05 : angle : 184,969736771336
16:58:05 : sr : 16 ; 16
16:58:05 : rrt1 : 16,0009291125621 ; 16,0020869224862
16:58:05 : rrt2 : -5,99825578990749 ; 15,9997893415569
16:58:05 : rrt3 : -5,99923140112901 ; -5,99404183636454
16:58:05 : rrt4 : 15,9987328385521 ; -5,99997356573033
16:58:05 : angle : 186,203442978038
16:58:05 : sr : 16 ; 16
16:58:05 : rrt1 : 16,0020782956358 ; 16,0039370461938
16:58:05 : rrt2 : -5,9965445566462 ; 15,9992065245474
16:58:05 : rrt3 : -5,9978234690376 ; -5,98835375488767
16:58:05 : rrt4 : 15,9974759534663 ; -5,99967454006219
16:58:05 : angle : 192,264764212393
16:58:05 : sr : 16 ; 16
16:58:05 : rrt1 : 16,0049455017653 ; 16,0067336644385
16:58:05 : rrt2 : -5,9933365365315 ; 15,9970156429686
16:58:05 : rrt3 : -5,99322260853216 ; -5,97841303678371
16:58:05 : rrt4 : 15,9950786520491 ; -5,99831106889587
16:58:05 : angle : 193,17254303152
16:58:05 : sr : 16 ; 16
16:58:05 : rrt1 : 16,0112953749217 ; 16,0107161156774
16:58:05 : rrt2 : -5,98752848873255 ; 15,9912677481823
16:58:05 : rrt3 : -5,98170421249415 ; -5,96156338755162
16:58:05 : rrt4 : 15,990671674389 ; -5,99454079770919
16:58:05 : angle : 193,17254303152
16:58:05 : sr : 16 ; 16
16:58:05 : rrt1 : 16,0247355828459 ; 16,0155134205242
16:58:05 : rrt2 : -5,97737506813655 ; 15,9776093909005
16:58:05 : rrt3 : -5,95513071955406 ; -5,93436311494116
16:58:05 : rrt4 : 15,9828328600703 ; -5,98531311523971
16:58:05 : angle : 196,587325744261
16:58:05 : sr : 16 ; 16
16:58:05 : rrt1 : 16,0528705279125 ; 16,0152879751392
16:58:05 : rrt2 : -5,96208364576114 ; 15,945326327005
16:58:05 : rrt3 : -5,89339086084294 ; -5,9018920500942
16:58:05 : rrt4 : 15,9705728764191 ; -5,96283666572481
16:58:05 : angle : 196,587325744261
16:58:05 : sr : 16 ; 16
16:58:05 : rrt1 : 16,107905244005 ; 15,9991353550108
16:58:05 : rrt2 : -5,94135319409042 ; 15,8761855806502
16:58:05 : rrt3 : -5,76321067969843 ; -5,87546454535044
16:58:05 : rrt4 : 15,9529795944421 ; -5,91379664102681
16:58:05 : angle : 198,799870871545
16:58:05 : sr : 16 ; 16
16:58:05 : rrt1 : 16,209775098202 ; 15,9307139685303
16:58:05 : rrt2 : -5,92573607184875 ; 15,7350441042599
16:58:05 : rrt3 : -5,49892083367331 ; -5,91905261575846
16:58:05 : rrt4 : 15,9362479296576 ; -5,81164726316894
16:58:05 : angle : 198,799870871545
16:58:05 : sr : 16 ; 16
16:58:05 : rrt1 : 16,3860303287831 ; 15,7407208390837
16:58:05 : rrt2 : -5,94081975594156 ; 15,465151972923
16:58:05 : rrt3 : -4,99848785532015 ; -6,16517464644727
16:58:05 : rrt4 : 15,9365962569713 ; -5,612910431351
16:58:05 : angle : 200,955761088715
16:58:05 : sr : 16 ; 16
16:58:05 : rrt1 : 16,6537969782805 ; 15,264762683257
16:58:05 : rrt2 : -6,07684067825926 ; 14,9931623184374
16:58:05 : rrt3 : -4,12229309802274 ; -6,99098038363661
16:58:05 : rrt4 : 16,0158276647433 ; -5,25708490335904
16:58:05 : angle : 202,011266925181
16:58:05 : sr : 16 ; 16
16:58:05 : rrt1 : 16,9843800132238 ; 14,214181973627
16:58:05 : rrt2 : -6,5254320521293 ; 14,2566389694031
16:58:05 : rrt3 : -2,75286038886622 ; -9,12672030027983
16:58:05 : rrt4 : 16,3089379946447 ; -4,68410729516586
16:58:05 : angle : 204,075480813244
16:58:05 : sr : 16 ; 16
16:58:05 : rrt1 : 17,1546214417016 ; 12,1126983163805
16:58:05 : rrt2 : -7,7163424805093 ; 13,3650993274277
16:58:05 : rrt3 : -1,06370684079207 ; -13,9951539247664
16:58:05 : rrt4 : 17,1278060992724 ; -3,94276260682142
16:58:05 : angle : 207,050578039133
16:58:05 : sr : 16 ; 16
16:58:05 : rrt1 : 16,4150786902911 ; 8,46187820127614
16:58:05 : rrt2 : -10,4432182472327 ; 13,0391153696003
16:58:05 : rrt3 : -0,303428431688076 ; -23,7063502479738
16:58:05 : rrt4 : 19,067820284341 ; -3,50574952476882
16:58:05 : angle : 207,050578039133
16:58:05 : sr : 16 ; 16
16:58:05 : rrt1 : 13,3565866448898 ; 2,95054933475296
16:58:05 : rrt2 : -15,7469143004041 ; 14,8348065801072
16:58:05 : rrt3 : -3,28246934150286 ; -40,711591731382
16:58:05 : rrt4 : 22,9343650466896 ; -4,43794531789746
16:58:05 : angle : 214,286856570462
16:58:05 : sr : 16 ; 16
16:58:05 : rrt1 : 3,82129346120632 ; -0,970555945806552
16:58:05 : rrt2 : -24,4564793773989 ; 24,2693007384245
16:58:05 : rrt3 : -20,5914783108042 ; -61,1713521322303
16:58:05 : rrt4 : 29,5436909094508 ; -10,7769885604822
16:58:05 : angle : 215,788953134113
16:58:05 : sr : 16 ; 16
16:58:05 : rrt1 : -15,9821911019889 ; 3,96655295351087
16:58:05 : rrt2 : -34,5920455924731 ; 47,6978289598378
16:58:05 : rrt3 : -64,6920216412181 ; -71,6018913820719
16:58:05 : rrt4 : 37,7364268048053 ; -27,3634602169913
16:58:05 : angle : 221,185905411792
16:58:05 : sr : 16 ; 16
16:58:05 : rrt1 : -47,9753272384035 ; 37,0384895942675
16:58:05 : rrt2 : -35,2366010457539 ; 90,8053124253969
16:58:05 : rrt3 : -152,061413357153 ; -24,7902850292997
16:58:05 : rrt4 : 40,0268285293932 ; -59,262878409724
16:58:05 : angle : 221,185905411792
16:58:05 : sr : 16 ; 16
16:58:06 : rrt1 : -82,2677451971599 ; 117,581308851165
16:58:06 : rrt2 : -7,97976874722019 ; 148,40575050918
16:58:06 : rrt3 : -274,357346605986 ; 137,783059770379
16:58:06 : rrt4 : 23,0350281420134 ; -103,979888108975

什么解释了此行为,我该如何纠正?

Addition1

所以,我以为我发现了我的错误。所有旋转中心都必须相对于父级。我实现了。

Point rotationCenter = this.surroundingRectangle.TranslatePoint(new Point(halfwidth, halfheight),this.ParentLayer);
this.rotateSurroundingRectangle.Angle = this.angle;
this.rotateSurroundingRectangle.CenterX = this.ParentLayer.TranslatePoint(rotationCenter,this.surroundingRectangle).X;
this.rotateSurroundingRectangle.CenterY = this.ParentLayer.TranslatePoint(rotationCenter, this.surroundingRectangle).Y;

rotateResizeCorner1.Angle = this.angle;
rotateResizeCorner1.CenterX = this.ParentLayer.TranslatePoint(rotationCenter, this.resizeCorner1).X;
rotateResizeCorner1.CenterY = this.ParentLayer.TranslatePoint(rotationCenter, this.resizeCorner1).Y;

rotateResizeCorner2.Angle = this.angle;
rotateResizeCorner2.CenterX = this.ParentLayer.TranslatePoint(rotationCenter, this.resizeCorner2).X;
rotateResizeCorner2.CenterY = this.ParentLayer.TranslatePoint(rotationCenter, this.resizeCorner2).Y;

rotateResizeCorner3.Angle = this.angle;
rotateResizeCorner3.CenterX = this.ParentLayer.TranslatePoint(rotationCenter, this.resizeCorner3).X;
rotateResizeCorner3.CenterY = this.ParentLayer.TranslatePoint(rotationCenter, this.resizeCorner3).Y;

rotateResizeCorner4.Angle = this.angle;
rotateResizeCorner4.CenterX = this.ParentLayer.TranslatePoint(rotationCenter, this.resizeCorner4).X;
rotateResizeCorner4.CenterY = this.ParentLayer.TranslatePoint(rotationCenter, this.resizeCorner4).Y;

我尝试过。有效。两次。当我第三次测试时,问题再次出现。抱歉,但是WTF。...

添加2

我在父图层上添加了一个网格,以更好地映射有问题的区域。该表具有结果。据我所知,这种行为是完全不稳定的。有时会发生,有时(在同一地点)不会发生。然后,它会在一个会话中发生,但不会在下一个会话中发生。然后,当我逆时针旋转而不是顺时针旋转或反之时,就会发生这种情况。尽管有一件事情似乎是稳定的:如果发生,则发生在前两个完整旋转中。 在表中,x表示该问题并未发生,o表示它是id,而x / o却发生了一次,但是当我尝试使用新符号时,它没有发生。

areas where the problem occurs

0 个答案:

没有答案