Cálculo das Equações que Definem os Planos Limitantes
de um Volume de Visualização
O objetivo dos cálculos apresentados a seguir é a determinação
das coordenadas dos pontos verdes da figura abaixo.
A partir deste pontos são calculadas as equações
dos planos limitantes do volume de visualização.
Dados Iniciais
Para que se possa calcular os pontos deve-se ter em mãos os seguintes
dados:
OBS: posição do observador
ALVO: Posição para onde se está olhando
NEAR: Distância entre o OBS e o plano Near
FAR: Distância entre o OBS e o plano Far
RIGHT: Distância do centro do Plano near até sua lateral
direita
Cálculo dos Pontos Extremos do Plano NEAR
O cálculo dos pontos verdes é feito calculando-se um "caminho
de vetores" do OBS até cada um dos pontos.
O cálculo do ponto verde no canto superior-direito do plano
Near pode ser obtido conforme o caminho apresentado na figura a seguir.
-
Inicialmente calcula-se o vetor unitário que representa o vetor
de visão (VV).
VV = ALVO - OBS
VV = VV / Módulo (VV)
-
Cria-se um vetor que vai do OBS ao plano Near. Chamemos este vetor de V1.
V1 = VV * NEAR
-
Obtém-se o ponto onde V1 toca o plano Near, somando V1 a OBS. Charemos
este ponto de PCentroNear.
PCentroNear = V1 + OBS
-
Obtém-se um vetor na direção de VDIR fazendo o produto
vetorial de V1 por UP = (0,1,0).
VDIR = V1 x UP
-
Transforma-se VDIR em unitário
VDIR = VDIR / Módulo (VDIR)
-
Altera-se o tamanho de VDIR para RIGHT
VDIR = VDIR * Right
-
Calcula-se o ponto DireitaNear (na borda do plano NEAR) somando-se VDIR
ao CentroNear
DireitaNear = VDIR + CentroNear
-
Obtém-se um vetor na direção de VUpDir fazendo o produto
vetorial de VDIR por V1.
VUPDIR = VDIR x V1
-
Transforma-se VUpDir em unitário
VUPDIR = VUPDIR / Módulo (VUPDIR)
-
Altera-se o tamanho de VUPDIR para TOP
VUPDIR = VUPDIR * Top
-
Obtém-se o ponto final, no canto superior direito do plano Near,
somando-se o VUPDIR ao ponto DireitaNear
CantoSuperiorDireito = DireitaNear + VUPDIR