

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Pentagon |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 6 Пол: Мужской Реальное имя: Диман Репутация: ![]() ![]() ![]() |
Люди! Помогите пожалуйста мне написать программу на паскале по изменению размеров изображения из файла (программа должна считывать графический файл, выводитть его на экран и изменять его размеры, как бы растягивать). Но не все так просто... Нужно сделать так, чтобы получился эффект вытягивания какого-нибудь угла изображение( или, если сказать проще, нужно "посадить" нашу картинку в произвольный четырехугольник).
![]() ![]() |
FreeMan |
![]()
Сообщение
#2
|
- ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 480 Пол: Мужской Репутация: ![]() ![]() ![]() |
юзай опенгл. рисуешь свой четырехугольник и натягиваешь изображение как текстурку
-------------------- бб
|
Pentagon |
![]()
Сообщение
#3
|
Группа: Пользователи Сообщений: 6 Пол: Мужской Реальное имя: Диман Репутация: ![]() ![]() ![]() |
Не, надо обязательно без Opengl или Direct3d, забыл сообщить... Важен сам принцип наложения текстуры. Все-таки научная работа....
|
Гость |
![]()
Сообщение
#4
|
Гость ![]() |
Ускорить производительность программы можно почти в 10 раз перейдя на целочисленную арифметику. Т.е. вместо real использовать integer. Если нужна какая-то точность, то считай две поледних цифры от integer как идущие после запятой (реальное значение выдавать как integer div 100). Всякие функции типа синуса и т.д. просчитать заранее и запомнить в массиве (например mass_sin[integer]=100*sin(integer/100) ).
Советую изображение брать в формате BMP, этот формат хорошо описан и можно поискать готовую библиотеку по его чтению-записи. Удачи! ![]() |
volvo |
![]()
Сообщение
#5
|
Гость ![]() |
Цитата(Pentagon @ 7.08.2006 11:06) Я уже сделал программу с таким эффектом. <...> Да и программа работает очень медленно даже на моём Athlon-не. <...> Вообщем получается то что надо, но тормозит! Ну, если у тебя уже получилось то, что надо - может быть ты покажешь, КАК ты это делал? А вдруг можно будет ускорить программу (может быть и не только в 10 раз, а на порядки) ![]() (программу присоединяй к сообщению в виде файла, а не вставляй сюда ее текст) |
Pentagon |
![]()
Сообщение
#6
|
Группа: Пользователи Сообщений: 6 Пол: Мужской Реальное имя: Диман Репутация: ![]() ![]() ![]() |
Для тех кто не верит, вот exe-шник, только я место закрашеных четырехугольников использовал точки, быстрее пашет. Управление: обзор с помощью мыши (старался сделать как в Half-Life
![]() |
volvo |
![]()
Сообщение
#7
|
Гость ![]() |
Цитата(Pentagon @ 18.08.2006 9:46) Для тех кто не верит, вот exe-шник Дело не в "верит" - "не верит"... Здесь - не форум любителей гадания на ромашках. Никто не сомневается, что твоя программа работает, НО... Ты что думаешь, чтобы разобраться КАК она работает (и, возможно, ускорить ее) кто-то будет ее дизассемблировать? По-моему, ты ошибаешься, тебе так не кажется?Если нужна помощь - приводи исходник. EXE будет удален (читай правила форума, пункт 10...) |
Pentagon |
![]()
Сообщение
#8
|
Группа: Пользователи Сообщений: 6 Пол: Мужской Реальное имя: Диман Репутация: ![]() ![]() ![]() |
Блин, я думал можно exe-ники посылать... Ладно, вот (если кто-че поймет) исходник. Для тех кто еще не понял программа на TMTPascal.
Помощь принимается и в алгоритмах. Не обязательно писать саму программу. В программе все очень напутано... Я просто забросил эту тему, потому что думал что никто не ответит, занялся другим делом, из-за этого и не довёл плод моего умственного труда до нормального состояния. Сообщение отредактировано: Pentagon - Прикрепленные файлы ![]() |
volvo |
![]()
Сообщение
#9
|
Гость ![]() |
Молодец... Значит, Mouse.pas и Engine.pas мы по телепатическому каналу принимаем? Извини, сегодня этот канал закрыт, а наши штатные телепаты - в отпуске.
|
Гость |
![]()
Сообщение
#10
|
Гость ![]() |
Молодец... Значит, Mouse.pas и Engine.pas мы по телепатическому каналу принимаем? Извини, сегодня этот канал закрыт, а наши штатные телепаты - в отпуске. Слушай мне не нужны тексты программ, мне не нужна помощь в улучшении моего алгоритма, мне нужен НОВЫЙ алгоритм в ТЕКСТОВОМ виде, и я спросил: у кого есть какие идеи....... И я считаю что тем людям, которые это читают не нужен текст моей проги... |
Гость |
![]()
Сообщение
#11
|
Гость ![]() |
Это я Pentagon, только с гостя зашел....
|
volvo |
![]()
Сообщение
#12
|
Гость ![]() |
Единственную возможную "идею" ты получил в первом же ответе. Все остальное называется "Повторное изобретение велосипеда". Тебе охота этим заниматься? You Are Welcome...
|
Pentagon |
![]()
Сообщение
#13
|
Группа: Пользователи Сообщений: 6 Пол: Мужской Реальное имя: Диман Репутация: ![]() ![]() ![]() |
|
Altair |
![]()
Сообщение
#14
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 4 825 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
Pentagon, хватит цирка, или ты показываешь исходники (не беспокойся о своем авторском праве, здесь твои исходники никому нафиг не нужны) или не занимаешься пустотрепством!
Цитата Я не прошу её опять изобретать. не просишь изобретать, тогда дай его целиком а не без колес... -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
Pentagon |
![]()
Сообщение
#15
|
|||
Группа: Пользователи Сообщений: 6 Пол: Мужской Реальное имя: Диман Репутация: ![]() ![]() ![]() |
<censored>: "мне не нужны тексты программ, мне НЕ НУЖНА помощь в улучшении моего алгоритма, мне нужен НОВЫЙ алгоритм в ТЕКСТОВОМ виде".
Максимум что я могу предложить это скомпилированнные файлы. Исходники я не дам (боюсь ![]() Мне кажется того файла, который я дал, вполне достаточно. Mouse.pas и Engine.pas вам знать не обязательно. Это вообще не относится к моей просьбе.
Сообщение отредактировано: volvo - |
|||
volvo |
![]()
Сообщение
#16
|
Гость ![]() |
Ну, тогда и тот ответ, который ты мог бы получить тебе тоже знать не обязательно... Вполне достаточно того, что предложил FreeMan...
[OffTop]Интересно получается... Человек пришел, жалуясь на то, что у него программа медленно работает... Предложили одно - нет, это нельзя, другие идеи давайте. "Покажи, как ты делаешь" - дает совершенно не то, что нужно, сам движок (который надо оптимизировать в первую очередь, кстати) остается тайной... Внимание, вопрос: Зачем спрашивал?[/OffTop] А теперь вопрос к автору топика на засыпку... У меня есть 2 программы: 1) uses unit1; 2) uses unit2; Так вот, что я хотел спросить у тебя... Почему первая отрабатывает за полсекунды, а вторая - за минуту? Забыл совсем, содержимое Unit1/Unit2 тебе знать СОВЕРШЕННО необязательно, как ты, вероятно, догадался... Так как насчет ответа? ![]() P.S. А за оскорбление получаешь премод на неделю. Учись вести себя прилично. Пригодится... |
Malice |
![]()
Сообщение
#17
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 705 Пол: Мужской Репутация: ![]() ![]() ![]() |
Тебе нужно обычное текстурирование. Только обычно для этого оперируют не 4-мя точками, а 3-мя, .т.е. натягивают текстуру на треугольник. В твоем случае можно разбить на 2 треугольника и все. Вот первая ссылка из гугля для этого http://www.enlight.ru:8002/faq3d/articles/42.htm
Если хочется все таки на 4, могу поискать дома, изобретал я этот велосипед лет 10 назад, возможно сохранилось. Но треугольниками быстрее будет. |
![]() ![]() |
![]() |
Текстовая версия | 29.04.2025 14:39 |