У меня есть то, что я считаю основной проблемой, которая заставляет меня чесать голову.
Я хочу иметь возможность рисовать прямоугольник на моей форме, ограничивая его определенным соотношением.Аналогично тому, как работает инструмент кадрирования в Photoshop.
Я могу корректно масштабировать изображения, используя соотношение, но у меня возникают проблемы с применением формулы к «нарисованному» прямоугольнику.
Вот основные принципы работыкод для рисования указанного прямоугольника.
Public Class Form2
Dim mRect As Rectangle
Protected Overrides Sub OnMouseDown(ByVal e As MouseEventArgs)
mRect = New Rectangle(e.X, e.Y, 0, 0)
Me.Invalidate()
End Sub
Protected Overrides Sub OnMouseMove(ByVal e As MouseEventArgs)
If e.Button = Windows.Forms.MouseButtons.Left Then
mRect = New Rectangle(mRect.Left, mRect.Top, e.X - mRect.Left, e.Y - mRect.Top)
Me.Invalidate()
End If
End sub
Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
Using pen As New Pen(Color.Red, 3)
e.Graphics.DrawRectangle(pen, mRect)
End Using
End class
Приведенный выше код прекрасно работает для рисования прямоугольника произвольной формы.Я просто не уверен, где или как применять формулу, чтобы нарисованный прямоугольник всегда придерживался определенного отношения, такого как 1,5
. Любая помощь будет принята с благодарностью.Спасибо