argon bulletin board

Факултети => Факултет по математика и информатика => Темата е започната от: Tosh в 21.05.2005, 14:27:51

Титла: Хитър метод за перспективна проекция и ротация на специален вид тримерни фигури
Публикувано от: Tosh в 21.05.2005, 14:27:51
Стана въпрос за компютърна графика на съседно място, та искам да задам един въпрос, който ми се върти от 1999 г...  :roll:

През втората половина на 90-те години си играх на нещо като "пионерче в компютърната графика", тъй като се опитвах да си измислям и правя компютърна графика сам, чрез свои наблюдения, размисли, опити; без да разполагам със "знанията на науката" (а и без много да търся), на милия ми приятел Емчо 84011/86 (Правец-8М).

Така, през 1999 г., малко преди да се сетя как да смятам перспективни изменения с произволен хоризонт и "вертиконт" (център на видимост) и произволна сила на перспективата,
ми хрумна частен метод за перспективно изобразяване и въртене в дълбочина на многостени (всъщност не знам точно как да ги нарека), които са построени от върхове, които могат да се впишат в окръжности.
Беше радост голяма, защото начинът е елегантен, с малко данни, и прост, а резултатът е триизмерен обект в перспектива, който може да се върти в дълбочина (!)  :-o на 360 градуса, и във височина, макар на ограничен ъгъл.

Методът е много прост, и може би това е причина да не съм го виждал описан никъде другаде, освен в моите програми.

Някой специалист да знае как се нарича в науката, кой от Първооснователите пръв го е използвал, кога, на каква машина?

Методът е приблизително следният:

-- Използва се поне една въображаема окръжност. За да има наклонени стени, трябват поне две окръжности с различен радиус.

-- Окръжностите се гледат "под ъгъл", като са превърнати в елипси. Това е много лесно - слагат се различни "радиуси" за sin и cos. Така се изчислява перспектива.

-- Върховете на фигурата се полагат върху елипсите, и се задават с ъгъл - фигурата може да не е затворена, а да е "ивица" от стени.
Въртенето на фигурата се извърша с добавяне или изваждане на стъпката на завъртане от всеки връх, вместо да се смята ъгъл и радиус спрямо оста на въртене, както е за произволни точки, тъй като и радиусът, и ъгълът се задават изрично. (За 6502/1.02 MHz арктангенс и квадратен корен са тежки операции)

-- Може да се променя перспективата по оста по която може да се извършва въртене, като се променя ъгъла под който са завъртяни елипсите - чрез промяна на ексцентричността им.

-- Лесно се слага тъкан върху четириъгълните стени, защото няма нужда от триангулация.

    (http://geocities.com/todprog/3d1.gif)

    (http://geocities.com/todprog/3d2.gif)


Това по-долу е връзка към статия с още изображения на ограничени, и на произволни триизмерни и двуизмерни обекти в перспектива, изчертани някога с Правец-8М, и по-късно от емулатор.

http://geocities.com/todprog/trigo3d.html

П.П. Знаете ли, че може да се прави ротация с линейни функции, без никаква тригонометрия? Ограничена е, но може...