Прочитать на английском

Поделиться через


Matrix.Shear Метод

Определение

Применяет указанный вектор шерия к этому Matrix путем подготовки вектора шеи.

Перегрузки

Shear(Single, Single)

Применяет указанный вектор стрижения к этой Matrix путем подготовки преобразования ревного ревного модуля.

Shear(Single, Single, MatrixOrder)

Применяет указанный вектор ревектора к этому Matrix в указанном порядке.

Shear(Single, Single)

Исходный код:
Matrix.cs
Исходный код:
Matrix.cs
Исходный код:
Matrix.cs
Исходный код:
Matrix.cs
Исходный код:
Matrix.cs

Применяет указанный вектор стрижения к этой Matrix путем подготовки преобразования ревного ревного модуля.

public void Shear (float shearX, float shearY);

Параметры

shearX
Single

Горизонтальный коэффициент перебора.

shearY
Single

Вертикальный коэффициент сдвига.

Примеры

Следующий пример кода предназначен для использования с Windows Forms и требует PaintEventArgseобъекта события Paint. Код выполняет следующее действие:

  • Рисует прямоугольник на экран с помощью зеленого пера перед применением преобразования масштабирования.

  • Создает Matrix и использует его для задания преобразования координат мира для Graphics.

  • Рисует другой прямоугольник с помощью красного пера.

  • Рисует многоточие с помощью синего пера.

Результатом является зеленый прямоугольник, красная параллелограмма и преобразованная синяя многоточие. Обратите внимание, что зеленый прямоугольник (нарисованный до настройки преобразования) напрямую использует координаты, предоставленные в вызове DrawRectangle. Остальные две цифры преобразуются до рисования. Прямоугольник преобразуется в параллелограмму (красный), а многоточие (синий) преобразуется в преобразованную параллелограмму. Обратите внимание, что нижняя часть прямоугольника перемещается (срезается) в оси x с коэффициентом в два раза больше высоты прямоугольника, таким образом формируя параллелограмму.

public void MatrixShearExample(PaintEventArgs e)
{
    Matrix myMatrix = new Matrix();
    myMatrix.Shear(2, 0);
    e.Graphics.DrawRectangle(new Pen(Color.Green), 0, 0, 100, 50);
    e.Graphics.MultiplyTransform(myMatrix);
    e.Graphics.DrawRectangle(new Pen(Color.Red), 0, 0, 100, 50);
    e.Graphics.DrawEllipse(new Pen(Color.Blue), 0, 0, 100, 50);
}

Комментарии

Преобразование, применяемое в этом методе, является чистой шерстью, только если один из параметров равен 0. Применяется к прямоугольнику в источнике, когда коэффициент shearY равен 0, преобразование перемещает нижний край по горизонтали на shearX раз высоту прямоугольника. Если коэффициент shearX равен 0, он перемещает правый край по вертикали shearY раз ширину прямоугольника. Осторожность заключается в том, что оба параметра являются ненулевой, так как результаты трудно прогнозировать. Например, если оба фактора имеют значение 1, преобразование является сингулярным (следовательно, неинвертируемым), сжимая всю плоскость до одной строки.

Применяется к

Shear(Single, Single, MatrixOrder)

Исходный код:
Matrix.cs
Исходный код:
Matrix.cs
Исходный код:
Matrix.cs
Исходный код:
Matrix.cs
Исходный код:
Matrix.cs

Применяет указанный вектор ревектора к этому Matrix в указанном порядке.

public void Shear (float shearX, float shearY, System.Drawing.Drawing2D.MatrixOrder order);

Параметры

shearX
Single

Горизонтальный коэффициент перебора.

shearY
Single

Вертикальный коэффициент сдвига.

order
MatrixOrder

MatrixOrder, указывающий порядок (добавление или предустановка), в котором применяется реви.

Примеры

Пример см. в разделе Shear(Single, Single).

Комментарии

Преобразование, применяемое в этом методе, является чистой шерстью, только если один из параметров равен 0. Применяется к прямоугольнику в источнике, когда коэффициент shearY равен 0, преобразование перемещает нижний край по горизонтали на shearX раз высоту прямоугольника. Если коэффициент shearX равен 0, он перемещает правый край по вертикали shearY раз ширину прямоугольника. Осторожность заключается в том, что оба параметра являются ненулевой, так как результаты трудно прогнозировать. Например, если оба фактора имеют значение 1, преобразование является сингулярным (следовательно, неинвертируемым), сжимая всю плоскость до одной строки.

Применяется к