2015-02-05 3 views
0

Как я понимаю, система координат изображения в .NET определена таким образом, что верхняя точка - это начало координат, справа - X, а Y - вниз.Трансформация координат в Picturebox

Есть ли встроенная функция .NET для преобразования координат по умолчанию в декартово? (Так что начало координат находится внизу слева, а X направлен справа, а Y направлен вверх.)

+1

Вы хотите перевернуть изображение по вертикали? или ваш вопрос касается только преобразования координат? –

+0

Я спрашиваю только об трансформации. Значение вместо начала в верхней левой точке, когда я указываю (0,0), я хочу, чтобы он начинался в нижней левой точке. –

+0

Нет, нет никакой встроенной библиотеки/класса для этого. Чтобы обходной путь для этого, вы можете прочитать изображение и нарисовать окно изображения, начиная от нижней точки до верхней точки. –

ответ

2

К сожалению, нет встроенной функции для преобразования в декартову координату. Однако было бы просто добавить его. Единственное отличие - это значение оси Y.

public static class PictureBoxExtensions 
{ 
    public static Point ToCartesian(this PictureBox box, Point p) 
    { 
     return new Point(p.X, p.Y - box.Height); 
    } 

    public static Point FromCartesian(this PictureBox box, Point p) 
    { 
     return new Point(p.X, box.Height - p.Y); 
    } 
} 

PS: Надеюсь, у меня есть правильная математика.

Смежные вопросы