Chcę przetestować przecięcie promienia z polem wokseli.
Mogłem naiwnie czołgać się przez pole wokseliobliczanie przecięcia promienia z krawędzią bieżącego woksela, a następnie robienie tego samego dla następnego woksela, aż coś uderzę. Ale czy nie jest szybszy sposób na prześledzenie pola woksela? Myślałem o czymś podobnym Algorytm liniowy Bresenhama w 3D, coś, co może szybko dać mi wszystkie komórki, które przecina dana linia. Ktoś to zrobił wcześniej?
Z powodu ograniczeń certy i faktu, że te promienie nie zdarzają się tak często, nie chcę budować ośmiu ani żadnej innej struktury danych.
Odpowiedzi:
3 dla odpowiedzi № 1Tutaj jest implementacja Bresenham w 3D. Jest w matlab; jeśli nie mówisz, że widzisz C wdrożenie tutaj.
0 dla odpowiedzi nr 2
Wierzę, że algorytm ośmiokrotny robi to, o co prosisz.