IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным. В описании темы указываем язык!!!

> работа с графикой на С
Tan
сообщение 2.10.2007 21:16
Сообщение #1


Профи
****

Группа: Пользователи
Сообщений: 559
Пол: Мужской
Реальное имя: Бруно

Репутация: -  10  +


Доброго времени суток. Моя цель : необходимо написать функцию, в которую передаются 5 параметров, первые 4 - координаты изображения, выведенного на экране, последний параметр H - это целое число. Требуется поделить изображение на Н одинаковых квадратов, после чего вывести их в определённом порядке в том же месте, где была изначальная картинка (это часть одной большой задумки). Вероятней всего наиболее удобно будет использовать одномерный массив из Н элементом, состоящих из структуры, которая хранит координаты каждого из маленьких квадратиков, а так же саму маленькую картинку. Вот, с релизацией возникли проблемки. Теперь начну сначала, и первый вопрос : как продефинировать вышеописанную структуру? (с коордианатами ясно, а вот как запихнуть туда ячейку в которой будет хранится небольшое изображение, которое занесётся в память, например, тем же getimage) Спасибо.


--------------------
Цитата
Imagination is more important than knowledge.
Albert Einstein
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Tan
сообщение 7.10.2007 18:39
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 559
Пол: Мужской
Реальное имя: Бруно

Репутация: -  10  +


Понятно. Допустим, уже известно число n (тут оно уже K smile.gif ). Я пытался дописать процедуру так, чтобы всё считалось в структуру и потом так же вывелось обратно, вот что я нахимичил, но это всё выводит только первый кусочек, что же не так ? :
    IMAGEPART picturemas[K][K];

void *buf[K];
int a, i, d, size, j, xx1, xx2, yy1, yy2, sum = 0;
a = (x2 - x1) * (y2 - y1) / (n * n); //сторона квадрата

// size = imagesize(x1, x2, y1, y2);
//
// if((buf = malloc(size)) != NULL)
// {
// getimage (x1, x2, y1, y2, buf);
// cleardevice();
// putimage (50, 50, buf, COPY_PUT);
// free(buf);
// };
xx1 = x1;
yy1 = y1;
xx2 = xx1 + a;
yy2 = yy1 - a;
for (i = 0; i < (K - 1); i++)
{
for (j = 0; j < (K - 1); j++)
{
picturemas[i][j].x_left = xx1;
picturemas[i][j].x_right = xx2;
picturemas[i][j].y_top = yy1;
picturemas[i][j].y_bottom = yy2;
size = imagesize (xx1,xx2,yy1,yy2);
if ((picturemas[i][j].buffer = malloc(size)) != NULL)
getimage(xx1,xx2,yy1,yy2,picturemas[i][j].buffer);
xx1 = xx1 + a;
xx2 = xx2 + a;

}
yy1 = yy1 - a;
yy2 = yy2 - a;
xx1 = x1;
xx2 = x2;
}

// Очищаем экран и пытаемся всё вывести как и было до очистки

cleardevice();

for (i = 0; i < (K - 1); i++)
for (j = 0; j < (K - 1); j++)
putimage (picturemas[i][j].x_left, picturemas[i][j].y_top, picturemas[i][j].buffer , COPY_PUT);



};


--------------------
Цитата
Imagination is more important than knowledge.
Albert Einstein
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Tan   работа с графикой на С   2.10.2007 21:16
volvo   typedef struct __IMAGEPART { int x_left, y_t...   2.10.2007 21:25
Tan   Cпасибо, начну реализовывать, если появятся вопрос...   2.10.2007 21:31
Tan   Появился следующий вопрос. Допустим на экран вывед...   7.10.2007 12:49
volvo   А функции getimage все равно, сколько у тебя цвето...   7.10.2007 12:55
Tan   Понятно, просто возникла проблема, что putimage вы...   7.10.2007 13:25
volvo   Я вообще не понимаю, как твоя программа могла рабо...   7.10.2007 14:20
Tan   Про сторону - это я в будущем буду использовать, ч...   7.10.2007 14:29
Tan   У меня снова новый вопрос по данной теме :) Имеет...   7.10.2007 15:14
volvo   Логичнее - динамически выделять память под матриц...   7.10.2007 17:23
Tan   Понятно. Допустим, уже известно число n (тут оно у...   7.10.2007 18:39
volvo   Я так и не понял логику твоей программы, но смотри...   7.10.2007 19:18
Tan   Спасибо! Я продолжаю разбираться!   7.10.2007 19:23
Tan   Странно получается, данная процедура в конце концо...   7.10.2007 22:58
volvo   Естественно... Я же сказал, что делалась попытка с...   7.10.2007 23:12
Tan   Я почему - то возомнил, что моё изображение это бо...   8.10.2007 16:45
Tan   Вот, используя все ваши замечания я немного измени...   13.10.2007 12:26
volvo   Чему равно K? (Программа и не будет виснуть, она...   13.10.2007 12:33


 Ответить  Открыть новую тему 
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 30.07.2025 23:05
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"