Я працюю над Roguelike, і для цього я створив алгоритм випромінювання / виливання променів (FoV) поля, який складається з побудови ліній Брезена на кожну точку суцільного кола. Це артефакти без (і досить ефективні), але він відсутній у моїй важливій вимозі: симетрія (якщо ви можете побачити монстра, він також повинен бути здатний бачити вас).
Ось приклад несиметричної поведінки мого коду. На лівому зображенні я стою в кутку (червоний блок "X" = стіна). Я можу побачити верхню праву плитку. Однак якщо я перейду до однієї з цих плиток (зображення праворуч), я більше не бачу плитки, з якої я прийшов.
Я думаю, що я можу бути після форми дозволеного поля зору , але лише тому, що стаття про розбійника припускає, що це допускає симетрію. Чи є альтернативні засоби для отримання симетрії?