Все что описано выше проверено на:
- Linux 2.6.23-gentoo-r3k1
- Mapnik 0.6.0 (sci-geosciences/mapnik)
- osm2pgsql 20090707 (sci-geosciences/osm2pgsql)
- PostgreSQL 8.3.7 (dev-db/postgresql-base, dev-db/postgresql-server)
- Python 2.6.2-r1
Все что описано выше проверено на:
Одно время у меня была мания на, всякого рода, графические библиотечки :) Они еще не раз появятся на этом сайте.
Казалось бы — убитое время: Ан нет, опыт написания подобных очень пригодился при разработке своего клона GD, который выводит курс валют и информер погоды на www.novgorod.ru, счетчик и кое-какие графики на top.novgorod.ru.
Здесь приведена неотъемлемая часть такое библиотек — Алгоритм Брезенхема для вывода эллипса, самый быстрый из подобных.
Эхххх, какой был видео-режим…какие для него писали демки.
Приведенный ниже код содержит простейшие функции для работы с XMode: включить режим, восстановить режим, вывести точку, изменить палитру, подождать обратного хода луча (интересно, как это выглядит на LCD мониторах :)), вывести символ и очистить экран.
Эта игрушка писалась для проверки недавно скачанного DirectX SDK. Проверка прошла успешно :) Если у кого-то есть желание дописать сие чудо, то ради бога. Особенно интересно было бы сделать сетевую версию — при выбивании кубка с одной стороны, он отправляется противнику. Получилось бы аля-банана.
Очень часто в форумах всплывают такие вопросы, как вывод на экран BMP и работа с видеорежимами VESA. Этот пример ответит на оба вопроса.
Программа писалась в студенческие годы, в качестве лабораторной работы. Студенты должны были получить спецификации и писать модули для поддержки файлов разных графических форматов, но были выставлены автоматы, и все замялось.
Все закончилось на том, что включался видеорежим, были написаны кое-какие функции для него (blt(), putpixel() и line())
Как то, когда я еще учился на четвертом курсе, меня попросили написать графический для простых чертежей. Главная особенность — это сохранение чертежей в компактные файлы. Позже предполагалось, что это будут не файлы, а обыкновенное текстовок поле в обыкновенной таблице обыкновенной базы данных.
Рисунок 1 — Редактирование списка объектов чертежа
Пример создания трехмерного ландшафта. Версия под Windows работает c DirectX, а DOS версия работает используя стандарт VESA. Пример показывает как работать с видео напрямую.
Использует свои процедуры отрисовки графических примитивов (Точек и треугольников). Легко адаптируется под любую ОС.
Скриншоты:
Просто «салют». Программа писалась в прошлом веке :), на TMT Паскале, но не смотря на это эффект своей красоты не потерял.
Не работает по Windows NT/2000/XP, так как эти операционные системы блокируют
включение видеорежимов VESA.
Скачать в архиве (ZIP;317Kb);
- DEMO.DESIGN (2:5032/7.32) -------------- DEMO.DESIGN -
Msg : 1 из 59 Scn
From : Lubarsky Oleg V. 2:5020/400 Срд 16 Июн 99 12:46
To : All Чтв 17 Июн 99 00:46
Subj : Re: Плавный переход одного изображения в другое.
--------------------------------------------------------
From: "Lubarsky Oleg V." <drlove@impuls.zhitomir.ua>
AlexMc пишет в сообщении <929442601@p122.f98.n5055.z2.ftn> ...
А> В демах, (особенно на AMIGA) часто используется сабж.
А> Пpичем эффект такой: одно изобpажение постепенно гаснет,
А> а дpугое пpоявляется. Как сделать?
Вариант 1:
Линейно интерполировать каждую компоненту (R1,G1,B1) цвета пиксела,
одного изображения, в соответстующие ему (R2,G2,B2) другого изображения,
результат и тыкать на экран:
R = R1 + k*(R2 - R1);
G = G1 + k*(G2 - G1);
B = B1 + k*(B2 - B1);
0 <= k <= 1
Вариант 2:
Рисовать вторую картинку поверх второй с использованием альфа-канала,
постепенно уменьшая прозрачность второго изображения.
Что в принципе одно и тоже :)
Bye!
Best regards, respectfully yours <Dr.L0V>...
--- ifmail v.2.14dev3
* Origin: Unknown (2:5020/400)
Download this code: twopic.txt
Тут приведены исходники всяких крутилок-вращалок. Написано очень давно, с целью разобраться с языком СИ. Достаточно красивый эффект получается если экспериментировать с вращаемым изображением.
В архиве находятся файлы rotate1.cpp-rotate6.cpp. Здесь приведены лишь два последних. Rotate5.cpp написан на СИ, а в rotate6.cpp внутренний цикл на ассемблере — разница в скорости очевидна.