Проблемы с отрисовкой сеткиJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Проблемы с отрисовкой сетки

Сообщение Anonymous »

Я пытаюсь просто отобразить сетку с некоторыми тестовыми цветами на экране 1920x1080, чтобы проверить, работает ли она. Однако он выглядит ужасно и изобилует графическими ошибками. Сетка должна выглядеть как градиент от черного к синему от левой стороны к правой. Однако сейчас это выглядит вот так. Хоть красиво, прикольно, но не предназначено.
Изображение

Я не знаю, как это исправить, поэтому вечно возился с числами в своем коде, но это все равно не работает. Я не знаю, дело ли в коде, который я недавно написал, или в методе создания прямоугольника. Мой основной мыслительный процесс заключался в следующем: установите начальный индекс, нарисуйте строку, перейдите на новую строку, повторите шаги 2–3. Итак, может ли кто-нибудь помочь исправить мой ужасный код?
Вот некоторый код, но если контекста недостаточно, файлы находятся здесь. Для этого так много кода, что я не знаю, достаточно ли этого, чтобы разобраться в проблеме. Точки интереса находятся в файле CustomPanel.
private void showPlayArea()
{
playAreaW = width - (width % 30);
playAreaH = height - (height % 20);
int startX = (int)(0.5 * (width - playAreaW));
int startY = (int)(0.5 * (height - playAreaH));
gridSizeX = playAreaW / 30;//make a 30x20 grid
gridSizeY = playAreaH / 20;
int currentAddress = 0;
currentAddress += (startY - 1) * width;//set starting address to top left corner of first grid box
currentAddress += (startX - 1) + gridSizeX;

for (int i = 0; i < 19; i++)//can't do the full 20 rows or it will fire index out of bounds for the array of pixels on screen
{
for (int ii = 0; ii < 30 ; ii++)//can't do full 30 rows or it will fire index out of bounds for the array of pixels on screen
{
System.out.println(i + " " + ii + " " + currentAddress); // prints row and column of grid box being rendered
setPixelRect(currentAddress, gridSizeX, gridSizeY, ii * 50);
//setPixelRect takes an address, width and height of the rect, then a color to set it and ii*50 is just to make each cell a different color
currentAddress += gridSizeX;
}
currentAddress += (width * (gridSizeY - 1)) - gridSizeX;
System.out.println("-----"); //shows when a new line is made
}

}


Подробнее здесь: https://stackoverflow.com/questions/797 ... g-problems
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»