Резултати от 1 до 14 от общо 14

Геометрична 3D задача

Сподели във Facebook Сподели в Twitter Изпрати на Email Сподели в LinkedIn
  1. Hpz
    Hpz е офлайн
    Junior Member
    Тук е от
    Dec 2010
    Мнения
    58
    #1

    Геометрична 3D задача

    Това е един малък проблем с елементарно решение, която решавах преди повече 15 години. Тогава имаше 3d графика, но използването й беше изключително сложно.

    Да си представим че имаме полигон с 4 ъгъла. Всеки от тях изобразен с координати (x,y,z). Имаме и екран - монитор. На него всичко се изобразява в двуизмерни координати (x,y). Ако екрана е с резолюция 1024x768 какви са 4-те екранни координати на (x1,y1,z1),(x2,y2,z2),(x3,y3,z3) и (x4,y4,z4)?

  2.  
     
  3. Banned
    Тук е от
    Sep 2003
    Мнения
    1,313
    #2

    Re:Геометрична 3D задача

    Така зададена задачата е леко неясна и непълна. Под полигон с 4 ъгъла какво се разбира? Произволна плоскост с 4 ъгъла? ( с други думу казанано прозиволен четириъгълник исрязан от безкрайно тънка "хартия") Или тетраедър?

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

    Та каква всъшност е задачата?


  4. Hpz
    Hpz е офлайн
    Junior Member
    Тук е от
    Dec 2010
    Мнения
    58
    #3

    Re:Геометрична 3D задача

    Условието е дори по-пълно отколкото трябва.

    Задачата има много ясно решение.

    п.п. Направо ме хвърли в тъч с ъглите

  5. Senior Member Аватара на Bibi
    Тук е от
    Nov 2004
    Мнения
    2,757
    #4

    Re:Геометрична 3D задача

    Ако не трябва да се изобразява перспективата, просто отпадат z-координатите - т.е. правим ортогонална проекция. Или пак бъркам?

  6. Banned
    Тук е от
    Sep 2003
    Мнения
    1,313
    #5

    Re:Геометрична 3D задача

    Цитат Първоначално публикувано от Bibi
    Ако не трябва да се изобразява перспективата, просто отпадат z-координатите - т.е. правим ортогонална проекция. Или пак бъркам?
    Ако нямаме перспектива на базата на какво твърдим че наблюдатела се намира по оста z?

    А разтоянието на което се намира обекта от проекцията също ли ня ма значение?

  7. Hpz
    Hpz е офлайн
    Junior Member
    Тук е от
    Dec 2010
    Мнения
    58
    #6

    Re:Геометрична 3D задача

    Цитат Първоначално публикувано от Yasen6275
    Ако нямаме перспектива на базата на какво твърдим че наблюдатела се намира по оста z?

    А разтоянието на което се намира обекта от проекцията също ли ня ма значение?
    Не разбрах въпроса с проекцията. Ако говорим разстояние "въображаем 3d обект"-"проекцията му на екрана" - то няма значение и не се изчислява изобщо.

    Иначе переспектива си имаме. В случия бих приел че е на L пиксела от повърхноста на монитора.

  8.  
     
  9. Hpz
    Hpz е офлайн
    Junior Member
    Тук е от
    Dec 2010
    Мнения
    58
    #7

    Re:Геометрична 3D задача

    Задачата е по-проста от това което изглежда.

  10. Banned
    Тук е от
    Sep 2003
    Мнения
    1,313
    #8

    Re:Геометрична 3D задача

    1. Не уточни каква е фигурата. Паралелепипед без дебелина или тетраедър.
    2. Изобразяването на какъвто и да е триизмерен обект на екран с две измерения няма как да стане без проекция. Ортогоналната проекция няма особен смисъл ако се опитваме да имитираме тризмерност. Когато се симулира триизмерност, обикновено се прави проекция на обекта върху екрана, като се свързва всяка негова точка с точка намираща се на 40-50 см от екрана, там където се намират обикновено очите на човек. Там където правите пресичат екрана се намират пикселите чийто цвят се определя от дадения обект.
    3. Така както аз я разбирам задачата няма нищо общо с логическите, а си е чисто геометрична.


  11. Hpz
    Hpz е офлайн
    Junior Member
    Тук е от
    Dec 2010
    Мнения
    58
    #9

    Re:Геометрична 3D задача

    Цитат Първоначално публикувано от Yasen6275
    1. Не уточни каква е фигурата. Паралелепипед без дебелина или тетраедър.
    2. Изобразяването на какъвто и да е триизмерен обект на екран с две измерения няма как да стане без проекция. Ортогоналната проекция няма особен смисъл ако се опитваме да имитираме тризмерност. Когато се симулира триизмерност, обикновено се прави проекция на обекта върху екрана, като се свързва всяка негова точка с точка намираща се на 40-50 см от екрана, там където се намират обикновено очите на човек. Там където правите пресичат екрана се намират пикселите чийто цвят се определя от дадения обект.
    3. Така както аз я разбирам задачата няма нищо общо с логическите, а си е чисто геометрична.
    По точка 2 си прав! По точка 3 - също - прочети заглавието на темата

    Ади сега да видим можете ли да я решите, въпреки че е ясно че можете...

  12. Hpz
    Hpz е офлайн
    Junior Member
    Тук е от
    Dec 2010
    Мнения
    58
    #10

    Re:Геометрична 3D задача

    Цитат Първоначално публикувано от Hpz
    Това е един малък проблем с елементарно решение, която решавах преди повече 15 години. Тогава имаше 3d графика, но използването й беше изключително сложно.

    Да си представим че имаме полигон с 4 ъгъла. Всеки от тях изобразен с координати (x,y,z). Имаме и екран - монитор. На него всичко се изобразява в двуизмерни координати (x,y). Ако екрана е с резолюция 1024x768 какви са 4-те екранни координати на (x1,y1,z1),(x2,y2,z2),(x3,y3,z3) и (x4,y4,z4)?
    Нека разстоянието от екрана е 1500 пиксела, тогава:

    xe1 = 1024/2-(1024/2-x1)*(1500/(z1+1500))
    ye1 = 768/2-(768/2-y1)*(1500/(z1+1500))

    Аналогично за останалите 3 точки.

  13. Banned
    Тук е от
    Sep 2003
    Мнения
    1,313
    #11

    Re:Геометрична 3D задача

    Цитат Първоначално публикувано от Hpz
    Нека разстоянието от екрана е 1500 пиксела, тогава:

    xe1 = 1024/2-(1024/2-x1)*(1500/(z1+1500))
    ye1 = 768/2-(768/2-y1)*(1500/(z1+1500))

    Аналогично за останалите 3 точки.
    xei = 512(1-(1-хi)/(zi/1500+1))=(512/(zi/1500+1))*(zi/1500+1-1+хi)=(zi/1500+хi)*512/(zi/1500+1)
    Аналогичните разждени за другата координата водят до формулата:
    ye1 = (zi/1500+уi)*384/(zi/1500+1)
    Тези формули дават неотрицателни стойности за xe1 и ye1 само за много малки стойности на хi и уi. Тоест само за малки обекти.

    Нещо не ми изглежда общовалидно.

    А и къде се намири наблюдателя в голямата координатна система?

  14.  
     
  15. Hpz
    Hpz е офлайн
    Junior Member
    Тук е от
    Dec 2010
    Мнения
    58
    #12

    Re:Геометрична 3D задача

    Нещо не ми стана ясно твоята формула и защо изобщо я пишеш.

    Наблюдателя в случая - точно по средата на екрана на 1500 пиксела навън.

    При 3-измерни координати, където z=0 - x и y са същите, защото лежат на екрана.

    Ако са по-навътре - проекцията им се приближава към центъра.

    Обекти извън екрана (по-близо до нас с отрицателно z) лесно могат да излязат от екрана, т.е. проекцията им на екрана да не се събира в неговите граници.

    При z=0: xe = 1024/2-(1024/2-x)*(1500/(z+1500)=512-(512-x)*(1500/1500)=512-512+x=x
    това е защото 1500/(z+1500)=1 при z=0
    при z=1500 (1500 пиксела дълбочина) проекцията е 2 пъти по-близка до цетъра - 1500/3000 = 1/2 т.е. xe=512-(512-x)*(1/2)= 256+x/2

  16. Banned
    Тук е от
    Sep 2003
    Мнения
    1,313
    #13

    Re:Геометрична 3D задача

    Цитат Първоначално публикувано от Hpz
    Нещо не ми стана ясно твоята формула и защо изобщо я пишеш.
    За да се проследят по лесно зависимостите между променливите. Опитал съм се да преработя твоята формула но не съм бил прецизен. Ще се поправя после.
    Цитат Първоначално публикувано от Hpz
    Наблюдателя в случая - точно по средата на екрана на 1500 пиксела навън.
    И тези неща се подразбират от ...
    Цитат Първоначално публикувано от Hpz
    При 3-измерни координати, където z=0 - x и y са същите, защото лежат на екрана.
    Това малко ми противоречи на разбиранията за тризмерност, но няма да споря, защото е въпрос на модел.
    Цитат Първоначално публикувано от Hpz
    Ако са по-навътре - проекцията им се приближава към центъра.
    Искаш да кажеш че всеки отдалечаващ се от наблщдатела обект отива към центъра на екрана. Е тук няма как да се съглася.
    Цитат Първоначално публикувано от Hpz
    Обекти извън екрана (по-близо до нас с отрицателно z) лесно могат да излязат от екрана, т.е. проекцията им на екрана да не се събира в неговите граници.
    Цитат Първоначално публикувано от Hpz
    При z=0: xe = 1024/2-(1024/2-x)*(1500/(z+1500)=512-(512-x)*(1500/1500)=512-512+x=x
    това е защото 1500/(z+1500)=1 при z=0
    при z=1500 (1500 пиксела дълбочина) проекцията е 2 пъти по-близка до цетъра - 1500/3000 = 1/2 т.е. xe=512-(512-x)*(1/2)= 256+x/2
    Нормалния вид на формулите които си дал е:
    xei = (512*zi+1500*xi)/(zi+1500)
    yei = (384*zi+1500*yi)/(zi+1500)

  17. Hpz
    Hpz е офлайн
    Junior Member
    Тук е от
    Dec 2010
    Мнения
    58
    #14

    Re:Геометрична 3D задача

    За нормалния вид е вярно, но не е много ясен. Пък и другия вид е по-добър за сметки (за да не се получи препълване). Между другото в практиката лесно се заменя k=1500/(z+1500), и после се ползва при x и при y... вместо да се изчислява 2 пъти.

    Първите 3d игри работят на този принцип. Аз лично съм правил много яки 3d изображения за времето си по тези формули. Сега си има GPU...

Сподели във Facebook Сподели в Google Plus Сподели в Twitter Изпрати на Email Сподели в LinkedIn

Подобни теми

  1. Геометрична задачка
    От ql^2/8 във форум Логически задачи
    Отговори: 5
    Последно: 01-11-14, 13:10
  2. Задача 270 (Следваща задача)
    От tricklys във форум Логически задачи
    Отговори: 18
    Последно: 22-06-05, 11:43
  3. Задача №183 (Нелогическа задача)
    От Cko във форум Логически задачи
    Отговори: 17
    Последно: 23-02-05, 16:16
  4. Задача №62
    От dedis във форум Логически задачи
    Отговори: 3
    Последно: 29-10-04, 12:23
  5. Задача №61
    От Raid във форум Логически задачи
    Отговори: 6
    Последно: 28-10-04, 14:57

SetCombG.com
SetCombG.com е портален сайт и Форум за битова техника, телевизори, климатици, лаптопи и смартфони, създаден през 1999 година.
Заедно сме над 20 години!
Следвай ни
Горе