Лекция 4::Задача 1
- Forums:
Пресичане с цилиндър
Да се реализира пресичане на лъч с цилиндър: да се създаде нов наследник на класа Geometry, който представя цилиндър. Цилиндъра се задава чрез:
* точка (Vector) - център на долната основа на цилиндъра
* радиус
* височина
Цилиндърът е винаги изправен (основата му e успореднa на равнината XZ).
Изчисляването на UV координатите реализирайте по подобие със сферата, само че ползвайте цилиндрични координати (вижте wikipedia за подробности).
Точки: 6т.
EDIT: тук има примерна картинка как трябва да изглежда резултатът.
Comments
UV
може ли малко пояснения за UV координатите или някакав линк просто в уикипедия или другаде не мога да намеря :(
Ето в Wikipedia:
Ето в Wikipedia: http://en.wikipedia.org/wiki/Cylindrical_coordinates
При нас радиалното разстояние не е от значение, важни са азимутът и височината (φ и y). Например, сложете
u = φ / 2π
v = (y - pos.y) / height
Където pos е позицията на цилиндъра (т.е. центъра на долната му основа), а height е височината му.
Горна точка
Имам друг въпрос за изпълняването на самия алгоритъм както и за намирането на нормалния вектор ни трябва да намерим и центъра на горната основа на цилиндъра нали.. ?
Разбира се. Но това не е
Разбира се.
Но това не е проблем, цилиндърът е изправен, т.е.
<горен център> = <долен център> + Vector(0, <височина>, 0),
да знам просто исках да бъда
да знам просто исках да бъда сигурна мерси много :)
Разстояния
Sorry за тъпият въпрос, ама разстоянието до къде трябва да връщаме в структурата info?!
От началото на лъча
От началото на лъча (ray.start), до пресечната точка.
Хм а това у нали е височината
Хм а това у нали е височината ,но височината е height нещо или се бъркам или немога да разбера у просто координата на горния център ли е или просто са едно и също с height .. ?
И още 1 въпрос за изчисляването на фи ми искат х и z координати ами тези координати на пресечната точка с лъча ли са или... и аз незнам
Да, тези "x", "y" и "z" са
Да, тези "x", "y" и "z" са координатите на пресечната точка.
y != height. height е височината на цилиндъра (сиреч е някаква константа).