![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Bokul |
![]()
Сообщение
#1
|
![]() Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 117 Пол: Мужской Реальное имя: Богдан Репутация: ![]() ![]() ![]() |
Подскажите, пожалуйста, алгоритм масштабирования рисунков. Рисунок представляет собой двумерный массив, каждый елемент которого определяет цвет соответствующего пикселя на рисунке.
Сообщение отредактировано: Bokul - 22.08.2006 5:46 -------------------- Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее. |
![]() ![]() |
Archon |
![]()
Сообщение
#2
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 618 Пол: Мужской Репутация: ![]() ![]() ![]() |
Вот, что я нашёл в обучалках асфиксии. На аглицком наречии, но всё же довольно неплохо написано.
Цитата For the horizontal area, I am going to calculate a certain step value. I will then trace along the bitmap, adding this step to my position, and placing the nearest pixel on to the screen. Let me explain this simpler ... Let us say I have a 10 pixel wide bitmap. I want to squish it into 5 pixels. Along the bitmap, I would draw every second pixel to screen. In ascii : 1234567890 13579 +--------+ +---+ | | | | | bitmap | | |dest | | | | +--------+ +---+ As you can see, by stepping through every second pixel, I have shrunk the bitmap to a width of 5 pixels. The equation is as follows : step = origionalwidth / wantedwidth; Let us say we have a 100 pixel wide bitmap, which we want to get to 20 pixels. step = 100 / 20 step = 5 If we draw every fifth pixel from the origional bitmap, we have scaled it down correctly! This also works for all values, if step is of type real. We also find the step for the height in the same way. Our horizontal loop is as follows : For loop1:=1 to wantedwidth do BEGIN putpixel (loop1,height,bitmap[round (curpos)],vga); curpos:=curpos+xstep; END; And the vertical loop is much the same. Easy huh? -------------------- Close the World...txeN eht nepO
|
![]() ![]() |
![]() |
Текстовая версия | 23.06.2025 18:30 |