Я пытаюсь создать диаграмму без использования каких-либо сторонних библиотек. У меня есть функция масштабирования, которая правильно масштабирует Canvas, но теперь мне нужно снова перерисовать все внутри холста.Сброс графики JavaFX Контекст после масштабирования холста
Но когда я делаю масштабирование, GrapphicsContext
также весы и пятна. Я хочу скорректировать точки блоттинга и показывать точки при обычном рисовании после увеличения. Как я могу это достичь?
Вот простой фрагмент кода, который я перерисовки:
private void redrawImage(Canvas canvas, int scale) {
GraphicsContext gc = canvas.getGraphicsContext2D();
gc.clearRect(0, 0, canvas.getWidth(), canvas.getHeight());
gc.scale(scale, scale);
gc.setStroke(Color.RED);
gc.setLineWidth(2);
gc.strokeRect(0, 0, canvas.getWidth(), canvas.getHeight());
gc.setStroke(Color.GREEN);
gc.strokeLine(0, 0, canvas.getWidth(), canvas.getHeight());
gc.strokeLine(0, canvas.getHeight(), canvas.getWidth(), 0);
gc.setStroke(Color.BLUE);
gc.strokeText("TEXT", 50, 50);
}
Даже я удалить gc.scale(X,Y)
я все еще вижу BLOTTED точки или текст, я хочу, чтобы масштаб всегда 1, но я должен также увеличить или масштаб одновременно.
То, что я хочу достичь, похоже на наложение GoogleMaps, вы видите, что объекты, когда они увеличены или уменьшены, перекалиброваны и настроены на масштабируемый масштаб. Это именно то, чего я хочу достичь.
Согласен о масштабировании. Но дело в том, что вы заметили, что «ТЕКСТ» затушевано и не совпадает с масштабируемой видимостью. То, что я хочу достичь, похоже на наложение GoogleMaps, вы видите, что объекты при масштабировании подвергаются повторной калибровке и настройке. Это именно то, чего я хочу достичь. – zIronManBox
А, вы хотите установить размер текста по отношению к масштабу? Но не за фиксированной величиной, так что она всегда читаема? – NwDev
Да. Не только текст. У меня есть объекты, такие как заполненные круги, прямоугольники, которые необходимо изменить соответственно. – zIronManBox