我正在制作程序,通过使用x y坐标在画框中成像来画一些线。图像将是可调整的,因此可以调整大小或旋转,但我希望绘制的线条沿图像跟随,而不要停留在图片框坐标上。当放大或缩小显示在图像后面的线条时,但旋转时,它们不跟随图像而随机跳跃。
我目前正在使用带有2个坐标的坐标系来形成一条线,但它会使坐标随处乱跳,不会随图像一起旋转。这是黑色线条1的代码。
---编辑---
这是顺时针旋转的代码,但是它却以逆时针方向移动。 angle2值仍是未知的,逆时针旋转一个接一个,尝试32是可能的最接近位置。坐标并没有像以前那样随机地跳,现在它与图片一起旋转,但是旋转的位置仍然不正确。将其旋转360度后,坐标位置会从原始位置略微移动。并且每转都会逆时针旋转。
float x = (float)bmp.Width / 2; float y = (float)bmp.Height / 2; ang = ang + 10; double ang2 = 32; double newLine1X1 = (line1X1 - x) * Math.Cos(ang2 /180) + (line1Y1 - y) * Math.Sin(ang2 /180) + x; double newLine1Y1 = -(line1X1 - x) * Math.Sin(ang2 /180) + (line1Y1 - y) * Math.Cos(ang2 /180) + y; double newLine1X2 = (line1X2 - x) * Math.Cos(ang2 /180) + (line1Y2 - y) * Math.Sin(ang2 /180) + x; double newLine1Y2 = -(line1X2 - x) * Math.Sin(ang2 /180) + (line1Y2 - y) * Math.Cos(ang2 /180) + y; line1X1 = (int)newLine1X1; line1Y1 = (int)newLine1Y1; line1X2 = (int)newLine1X2; line1Y2 = (int)newLine1Y2;
顺时针旋转代码
float x = (float)bmp.Width / 2; float y = (float)bmp.Height / 2; ang = ang - 10; double ang2 = -32; double newLine1X1 = (line1X1 - x) * Math.Cos(ang2 /180) - (line1Y1 - y) * Math.Sin(ang2 /180) + x; double newLine1Y1 = (line1X1 - x) * Math.Sin(ang2 /180) + (line1Y1 - y) * Math.Cos(ang2 /180) + y; double newLine1X2 = (line1X2 - x) * Math.Cos(ang2 /180) - (line1Y2 - y) * Math.Sin(ang2 /180) + x; double newLine1Y2 = (line1X2 - x) * Math.Sin(ang2 /180) + (line1Y2 - y) * Math.Cos(ang2 /180) + y; line1X1 = (int)newLine1X1; line1Y1 = (int)newLine1Y1; line1X2 = (int)newLine1X2; line1Y2 = (int)newLine1Y2;
逆时针旋转代码
谁能告诉我如何解决此旋转错误?非常感谢你。
我正在制作程序,通过使用x y坐标在画框中成像来画一些线。图像将是可调整的,因此可以调整大小或旋转,但是我希望绘制的线条沿图像沿着...
您要的是变换矩阵和偏移矢量