2013-07-03 2 views
0

Привет, я сейчас работаю над 2D-игровым движком, полностью написанным в java. Есть ли способ центрирования графического объекта (g.drawString (х, у, г).Центрирование графического объекта в java

Было бы желательно, если это может быть сделано с помощью графики и DefaultToolkit.

Thankyou очень много :)

+1

Начнем с просмотра [этого] (http://stackoverflow.com/questions/14284754/java-center-text-in-rectangle/14287270#14287270) – MadProgrammer

+0

строка измеряется точками, в то время как вы рисуете с помощью пикселей, и нет способа нарисовать строку в пикселях, но вы получите рисованную строку в пикселе и нарисуете ее в центре –

+0

Да, вы могли бы центрировать графический объект. Что вы пытаетесь достичь здесь. 'g.drawString (x, y, z)' делает это за вас. Вам нужно, чтобы другие объекты могли быть также центрированы? – blganesh101

ответ

1

Простая математика. У нас есть объект, который будет центрирован, и область, где он должен быть центрирован. Ширина

Объект - ш высоты

Object - ч

ширина Площадь - Aw

Высота Площадь - аН

// координаты центра Follow координаты, где верхний левый угол должен быть размещен для того, чтобы объект находился в центре

центрWidth = (aW - W)/2

centerHeight = (aH - H)/2

Как вы можете видеть, вы ДОЛЖНЫ знать метрики области, на которую вы размещаете свой объект! Если эта область является только экраном, то размер экрана можно использовать следующим образом.

//Some dummy object metrics 
    int w = 30; 
    int h = 60; 

    //Now we find out the area metrics 
    Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); 
    int aW = screenSize.width; 
    int aH = screenSize.height; 

    //Apply our common formula 
    int centerWidth = (aW - w)/2; 
    int centerHeight = (aH - h) /2; 

Это хорошо подходит для объектов, которые вы знаете (их ширина и высота).

Текст центрирование

Если вы хотите отцентрировать текст, вы можете использовать FontMetrics класс, который позволяет измерить размер текста.

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