ПОНЯТНО О Visual Basic NET (том 2)


12.8. Преобразования системы координат


Я уже вам говорил, что начало системы координат для элемента управления находится в его верхнем левом углу, причем ось Y направлена вниз. У объекта класса Graphics есть методы, позволяющие изменять положение начала координат, направление осей, их масштаб, вращать систему координат.

Сдвиг, растяжение, сжатие, смена направления на обратное. Поставим задачу поменять компьютерную систему координат на привычную нам по школе, когда ось Y направлена вверх и начало координат лежит посредине тетрадного листа. Создадим для этого программу:

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

        Dim Гр As Graphics = Me.CreateGraphics

        Гр.ScaleTransform(1, -1)                               'Меняем направление оси Y

        Гр.TranslateTransform(300, -100)                 'Смещаем начало координат

        Гр.DrawLine(Pens.Black, 0, 0, 150, 70)

        Гр.DrawString("Новое начало координат", Me.Font, Brushes.Black, 0, 0)

        Гр.DrawString("Точка 150, 70", Me.Font, Brushes.Black, 150, 70)

    End Sub

Пояснения: Для изменения направления оси Y оператор

        Гр.ScaleTransform(1, -1)                               'Меняем направление оси Y

использует процедуру  ScaleTransform, которая позволяет растягивать или сжимать обе оси координат и менять их направление. Первый параметр относится к оси X, второй – к оси Y. Знак минус означает, что ось меняет направление на обратное. Если бы первым параметром мы вместо 1 написали 3, то все размеры по оси X увеличились бы в 3 раза, то есть любая картинка или фигура троекратно растянулась бы по горизонтали.

Для смещения начала координат из верхнего левого угла приблизительно в середину формы использован оператор

        Гр.TranslateTransform(300, -100)                 'Смещаем начало координат

Первый параметр процедуры TranslateTransform смещает начало координат направо на 300 пикселей, второй – вниз на 100 пикселей. Не перепутайте: именно вниз, а не вверх, так как теперь, после того, как ось Y стала смотреть вверх, отрицательные величины означают направление вниз, а не вверх.




Начало  Назад  Вперед