В основном у меня есть программа, которая берет X1, Y1, X2, Y2 и записывает текст между этими 2 точками, она берет нижние 2 точки текста и затем получает необходимый размер шрифта, который будет соответствовать между ними.
В ArrayList, который получает код (X1, X2, Y1, Y2), теперь проблема в том, что когда я пытаюсь напечатать что-то близко к центру изображения, текст поворачивается и размещается на расстоянии около 500 пикселей, что довольноразочарование.
public static void WriteBetweenPointsBA(ArrayList<Integer> Yellows,String Case,BufferedImage bufferedImage) throws FontFormatException, IOException {
double tanresult = Math.toDegrees(Math.atan((double) (Yellows.get(3)-Yellows.get(1))/(double) (Yellows.get(2)-Yellows.get(0))));
//Gets the Degree between both points
double distance = Math.hypot(Yellows.get(3)-Yellows.get(1), Yellows.get(2)-Yellows.get(0));
//Get Distance between 2 Points
AffineTransform affineTransform = new AffineTransform();
Graphics graphics = bufferedImage.getGraphics();
Font font = new Font("Bahnschrift",Font.PLAIN,(int)((distance/Case.length())*2)); //Sets the font size based on Distance
graphics.setColor(new Color(28, 27, 25));
affineTransform.rotate(Math.toRadians(tanresult), Yellows.get(0),Yellows.get(1));//Rotate the text around X1,X2
Font rotatedFont = font.deriveFont(affineTransform);
graphics.setFont(rotatedFont);
graphics.drawString(Case, Yellows.get(0),Yellows.get(1));
//Print font
}```