2015-12-07 13 views
1

В соответствии с заголовком.Инвертировать обрезку в rgl :: clipplanes3d

Я использую пакет rgl, чтобы построить трехмерную поверхность.

В какой-то момент я хочу вырезать часть сюжета, поэтому я использую rgl::clipplanes3d. Он работает, но зажимает неправильную сторону, оставляя в окне только то, что я хотел удалить (и удалить интересующую меня часть).

Самолет Я использую для клипа определяется по формуле:

h <- planes3d(a=0.2,b=1,c=0,d=-450) 

Я знаю, что он делит поверхность на две части, и я хочу, чтобы избавиться от одного. Но если я позвоню

h <- clipplanes3d(a=0.2,b=1,c=0,d=-450) 

хорошая часть исчезает, а неправильная часть остается. Есть ли какое-то обходное решение для этого или какое-то преобразование, которое я могу применить к a, b, c, d, чтобы обрезание было перевернуто?

ответ

1

Это был реальный вопрос, но я получил вдохновение, написав его, и я нашел решение.

Вам просто нужно применить, псевдокодирование, (a,b,c,d) -> (-a,-b,-c,-d).

Другими словами, поскольку плоскость определяется ax + by + cz + d = 0, вы можете умножить уравнение на -1 и получить точно такую ​​же плоскость. Однако, используя -a,-b,-c,-d, вы инвертируете полупространство, разделенное rgl::clipplanes3d.

Смежные вопросы