Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.01.2013, 00:37   #1
vampik
 
Регистрация: 15.05.2011
Сообщений: 7
По умолчанию Наложение текстур на шахматную доску

Вот я нарисовал доску, загрузил изображения.
Помогите расставить их на доску ,я вообще без понятия, единственное, что мне приходит в голову это рисовать по отдельности квадратики то есть 64 штуки без цикла и на них по отдельности налаживать текстуры. Покажите как это можно сделать по легче ,если можно кодом.


http://www.programmersclub.ru/наложе...хматную-доску/
vampik вне форума Ответить с цитированием
Старый 22.01.2013, 03:04   #2
chertovich
Форумчанин
 
Аватар для chertovich
 
Регистрация: 26.07.2009
Сообщений: 489
По умолчанию

Рисовать квадраты надо относительно координат i и j, умножая на размер квадрата
Код:
	for (int i = 0; i < 8; i++)
		for (int j = 0; j < 8; j++)
		{
			if ((i + j)%2 == 0)
			{
				// Рисуем белый квадрат и ставим фигуру (если надо)


			}
			else
			{
				// Рисуем черный квадрат и ставим фигуру (если надо)
			}
		}
Вот, написал на Delphi (извиняюсь, просто мне удобнее так):
Код:
procedure TForm1.PaintBox1Paint(Sender: TObject);
const
  Size = 50;
var
  I, J: Integer;
begin
  for I := 0 to 7 do
    for J := 0 to 7 do
    begin
      if (I + J) mod 2 = 0 then
        PaintBox1.Canvas.Brush.Color := clWhite
      else
        PaintBox1.Canvas.Brush.Color := clBlack;

      PaintBox1.Canvas.Rectangle(J * Size, I * Size, J * Size + Size, I * Size + Size);
    end;
end;
Вот результат:
Если в глубине души вы программист, то, следуя своим наклонностям, вы захотите написать кусок кода.

Последний раз редактировалось chertovich; 22.01.2013 в 03:18.
chertovich вне форума Ответить с цитированием
Старый 22.01.2013, 03:56   #3
vampik
 
Регистрация: 15.05.2011
Сообщений: 7
По умолчанию

Ах да, забыл упомянуть что это всё делается через opengl, доску то я нарисовал а вот как на opengl наложить правильно текстуру незнаю. Именно чтоб не приходилось рисовать каждый квадрат по отдельности и налаживать фигуры.
vampik вне форума Ответить с цитированием
Старый 22.01.2013, 12:13   #4
Perchik71
С++, Delphi
Форумчанин
 
Аватар для Perchik71
 
Регистрация: 24.11.2012
Сообщений: 495
По умолчанию

думаю больше инфы о 3d графике как и в опене так и на директе увидишь здесь.
Если помог, тут весы есть , Вам не сложно, а мне приятно.
Perchik71 вне форума Ответить с цитированием
Старый 22.01.2013, 14:22   #5
vampik
 
Регистрация: 15.05.2011
Сообщений: 7
По умолчанию

мне 2D надо. И если уже ссылки кидаете ,то кидайте уже то, где налаживаются несколько текстур на массив квадратов. Так то наложение одной текстуры на один квадрат я умею.
vampik вне форума Ответить с цитированием
Старый 23.01.2013, 19:02   #6
Perchik71
С++, Delphi
Форумчанин
 
Аватар для Perchik71
 
Регистрация: 24.11.2012
Сообщений: 495
По умолчанию

лень матушка.. ага?
Код:
glGenTextures(1,&barkn);
glBindTexture(GL_TEXTURE_2D, barkn);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER,GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,GL_NEAREST);
glTexImage2D(GL_TEXTURE_2D,0,3,width, height,0,GL_RGB,GL_UNSIGNED_BYTE,data);
один из вариантов наложения.... если правильно загрузили растр можно удалить ибо в видюхе зарезервировано... в зависимости от её самой несколько... например 7. вобще... я бы посоветовал загрузить одну текстуру и все кубики отрендерить glDrawArrays как массив мешей... это будет быстрее чем рендерить по отдельности.... выбираешь вторую грузишь и другие кубики доделываешь. А если у тебя шейдер... то там другие песни. в зависимости версии шейдера. версии гл..
//---
статейка всё там же.. пятая ссылка по поиску сайта... жесть...
Если помог, тут весы есть , Вам не сложно, а мне приятно.

Последний раз редактировалось Perchik71; 23.01.2013 в 19:04.
Perchik71 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как нарисовать шахматную доску в Delphi? вася радугов Помощь студентам 2 18.11.2012 18:48
задача про шахматную доску Katrina* Паскаль, Turbo Pascal, PascalABC.NET 2 21.12.2011 09:38
Задача про шахматную доску, Паскаль Locksmaster Помощь студентам 2 02.11.2011 12:45
Задача про шахматную доску aiktz Помощь студентам 6 13.03.2009 11:53