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

> Внимание!

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

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> работа с графикой на С
сообщение
Сообщение #1


Профи
****

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

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


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


--------------------
Цитата
Imagination is more important than knowledge.
Albert Einstein
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #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   работа с графикой на С   3.10.2007 1:16
volvo   typedef struct __IMAGEPART { int x_left, y_t…   3.10.2007 1:25
Tan   Cпасибо, начну реализовывать, если появятся вопрос…   3.10.2007 1:31
Tan   Появился следующий вопрос. Допустим на экран вывед…   7.10.2007 16:49
volvo   А функции getimage все равно, сколько у тебя цвето…   7.10.2007 16:55
Tan   Понятно, просто возникла проблема, что putimage вы…   7.10.2007 17:25
volvo   Я вообще не понимаю, как твоя программа могла рабо…   7.10.2007 18:20
Tan   Про сторону - это я в будущем буду использовать, ч…   7.10.2007 18:29
Tan   У меня снова новый вопрос по данной теме :) Имеет…   7.10.2007 19:14
volvo   Логичнее - динамически выделять память под матриц…   7.10.2007 21:23
Tan   Понятно. Допустим, уже известно число n (тут оно у…   7.10.2007 22:39
volvo   Я так и не понял логику твоей программы, но смотри…   7.10.2007 23:18
Tan   Спасибо! Я продолжаю разбираться!   7.10.2007 23:23
Tan   Странно получается, данная процедура в конце концо…   8.10.2007 2:58
volvo   Естественно... Я же сказал, что делалась попытка с…   8.10.2007 3:12
Tan   Я почему - то возомнил, что моё изображение это бо…   8.10.2007 20:45
Tan   Вот, используя все ваши замечания я немного измени…   13.10.2007 16:26
volvo   Чему равно K? (Программа и не будет виснуть, она…   13.10.2007 16:33


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

 





- Текстовая версия 6.05.2024 11:23
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name