2010-12-20 4 views
1

Я пишу программу, которая принимает координаты от пользователя и рисования некоторые фигуры на экране со звездами (*)рисунок прямоугольник

например прямоугольник т.е. прямоугольник = 100,150,50,50, как х, у, ширина, высота , как мне это сделать??

+0

нет только на экране со звездами –

+1

Можете ли вы перечислить все формы, которые вам нужны для поддержки? –

+0

прямоугольник, triangleisquare и pentagon..I принимаю координаты от пользователя –

ответ

1

Что рисунок со звездами "есть? Если это текстовый режим с моноширинным шрифтом, вам нужно распечатать его в горизонтальных линиях звезд, вычисляя правильные длины. Для прямоугольников это легко, для треугольников, немного менее просто, пятиугольник - это просто комбинация прямоугольника и некоторых треугольников. См. Bresenham algorithm для вдохновения.

Также обратите внимание, что разрешение текстового режима довольно плохое; стандартное оконечное окно шириной всего лишь 80 символов, и вы вряд ли можете получить его гораздо шире, чем 200-300 символов, поэтому важно правильное округление.

+0

yes..triangle легко я сделал это, но другие выглядят трудными –

+0

пентагон не очень сложно сломать на легкие куски:! [4 треугольника и прямоугольник] (http://i.min.us/idH51K.png) , – 9000

0

Если это только прямоугольные, а затем положить его в вашем методе краски должны работать ...

int xIncrement = (int)g.getFont().getStringBounds("*", null).getWidth(); 
int yIncrement = (int)g.getFont().getStringBounds("*", null).getHeight(); 
for(int i = y; i < y + height; i += xIncrement) 
    for(int j = x; j < x + width; j += yIncrement) 
     g.drawString("*", j, i); 

Для треугольников и других фигур, это немного сложнее, но вы можете фигуры из градиентов линий разделения точек и, следовательно, получить начальную х для каждой линии.

Как правило, стараются избегать «звезда рисунок» ...

0

Ниже от javadoc

х - новые координаты х для верхнего левого угла прямоугольника у - новая координата для верхнего левого угла этого прямоугольник

0

Если вы не имеете в виду графический интерфейс, то Y координата может быть количеством линий вы ч ave, чтобы «пропустить», а координата x похожа на количество пробелов, которые вы ввели в строку.

Итак, в основном, x = 2 и y = 3 означает, что вам нужно будет спуститься по 3 линиям и переместить 2 пробела вправо.

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