Я хочу, чтобы нарисовать треугольник и текст, используя C++ и Каир, как это:Cairo переворачивает рисунок
|\
| \
|PP\
|___\
Если добавить треугольник и текст с помощью Cairo я получаю:
___
| /
|PP/
|/
|/
Так ось y сверху вниз, но я хочу ее снизу вверх. Поэтому я попытался изменить матрицу точек обзора (cairo_transform (p, & mat);) или масштабировать данные (cairo_scale (p, 1.0, -1.0);). Я получаю:
|\
| \
|bb\
|___\
Теперь треугольник так, как я хочу его, но текст дублируется, что я не хочу быть зеркальным.
Любая идея, как справиться с этой проблемой?
Почему вы не создать правильный треугольник с самого начала, имея в виду, что Cairo использует другую ориентацию оси, как мы делаем с ручкой и бумагой? Для меня преобразование кажется не таким, как предпочтительный путь. – lupz
Благодарим вас за ответ. Во всяком случае, я не могу так поступать, потому что это не только один треугольник, но и сложный рисунок, созданный сложным для понимания алгоритмом. Этот алгоритм уже существует и его нельзя изменить. Конечно, я мог бы написать еще один алгоритм, который переворачивает y-координату каждого элемента чертежа, но перемещает текст. Ну, я просто надеялся, что есть способ рисовать с Каиром обычным способом, но, вероятно, нет. – user3144699
Ну ... Перенесем y-координату выхода алгоритма. Текст может быть более сложным. При добавлении текста к результату алгоритма -> ok. Когда это часть результата, она тоже может быть перевернута. Вам нужно будет различать рисование и текст. Но вам, возможно, придется пересчитать положение текста. Возможно, можно будет подавать алгоритм itselft с перевернутыми координатами, чтобы получить желаемый результат. – lupz