Стана въпрос за компютърна графика на съседно място, та искам да задам един въпрос, който ми се върти от 1999 г...
През втората половина на 90-те години си играх на нещо като "пионерче в компютърната графика", тъй като се опитвах да си измислям и правя компютърна графика сам, чрез свои наблюдения, размисли, опити; без да разполагам със "знанията на науката" (а и без много да търся), на милия ми приятел Емчо 84011/86 (Правец-8М).
Така, през 1999 г., малко преди да се сетя как да смятам перспективни изменения с произволен хоризонт и "вертиконт" (център на видимост) и произволна сила на перспективата,
ми хрумна частен метод за перспективно изобразяване и въртене в дълбочина на многостени (всъщност не знам точно как да ги нарека), които са построени от върхове, които могат да се впишат в окръжности.
Беше радост голяма, защото начинът е елегантен, с малко данни, и прост, а резултатът е триизмерен обект в перспектива, който може да се върти в дълбочина (!)
на 360 градуса, и във височина, макар на ограничен ъгъл.
Методът е много прост, и може би това е причина да не съм го виждал описан никъде другаде, освен в моите програми.
Някой специалист да знае как се нарича в науката, кой от Първооснователите пръв го е използвал, кога, на каква машина?
Методът е приблизително следният:
-- Използва се поне една въображаема окръжност. За да има наклонени стени, трябват поне две окръжности с различен радиус.
-- Окръжностите се гледат "под ъгъл", като са превърнати в елипси. Това е много лесно - слагат се различни "радиуси" за sin и cos. Така се изчислява перспектива.
-- Върховете на фигурата се полагат върху елипсите, и се задават с ъгъл - фигурата може да не е затворена, а да е "ивица" от стени.
Въртенето на фигурата се извърша с добавяне или изваждане на стъпката на завъртане от всеки връх, вместо да се смята ъгъл и радиус спрямо оста на въртене, както е за произволни точки, тъй като и радиусът, и ъгълът се задават изрично. (За 6502/1.02 MHz арктангенс и квадратен корен са тежки операции)
-- Може да се променя перспективата по оста по която може да се извършва въртене, като се променя ъгъла под който са завъртяни елипсите - чрез промяна на ексцентричността им.
-- Лесно се слага тъкан върху четириъгълните стени, защото няма нужда от триангулация.
Това по-долу е връзка към статия с още изображения на ограничени, и на произволни триизмерни и двуизмерни обекти в перспектива, изчертани някога с Правец-8М, и по-късно от емулатор.
http://geocities.com/todprog/trigo3d.htmlП.П. Знаете ли, че може да се прави ротация с линейни функции, без никаква тригонометрия? Ограничена е, но може...