Socket.io: Невозможно повернуть фигуры [duplicate]

proc.Arguments = "/ C Date:" + dateInYourSystemFormat;

Эта функция работы:

void setDate(string dateInYourSystemFormat)
{
    var proc = new System.Diagnostics.ProcessStartInfo();
    proc.UseShellExecute = true;
    proc.WorkingDirectory = @"C:\Windows\System32";
    proc.CreateNoWindow = true;
    proc.FileName = @"C:\Windows\System32\cmd.exe";
    proc.Verb = "runas";
    proc.Arguments = "/C Date:" + dateInYourSystemFormat;
    try
    {
        System.Diagnostics.Process.Start(proc);
    }
    catch
    {
        MessageBox.Show("Error to change time of your system");
        Application.ExitThread();
    }
}
4
задан lupefiasco 15 January 2011 в 00:39
поделиться

1 ответ

  1. Переведите контекст в точку на холсте, вокруг которого должен вращаться объект.
  2. Поворот контекста.
  3. Либо: Перевести контекст на отрицательное смещение внутри объект для центра вращения, а затем нарисуйте объект на 0,0 или нарисуйте изображение, используя отрицательное смещение внутри объекта для центра вращения.

, например.

ctx.save();
ctx.translate( canvasLocX, canvasLocY );
ctx.rotate( ballRotationInRadians );
ctx.drawImage( ball_img, -ballCenterX, -ballCenterY );
ctx.restore();

Обратите внимание: если вам нужна абсолютная скорость, вместо сохранения и восстановления холста (обработка многих свойств, которые вы не изменили), вы можете просто отменить свою работу:

ctx.translate( canvasLocX, canvasLocY );
ctx.rotate( ballRotationInRadians );
ctx.drawImage( ball_img, -ballCenterX, -ballCenterY );
ctx.rotate( -ballRotationInRadians );
ctx.translate( -canvasLocX, -canvasLocY );

Предыдущий бит преждевременной оптимизации был слепо попугаем от кого-то другого;

Редактировать: я добавил здесь примерный пример: http://phrogz.net/tmp /canvas_beachball.html

12
ответ дан Phrogz 19 August 2018 в 17:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: