В rgl можно ли изменить цвет вершин без повторной передачи координат? - PullRequest
0 голосов
/ 21 сентября 2019

Например, допустим, я пытаюсь нарисовать четырехугольник с quads3d, и я однажды сделал вызов этой функции, и у меня получился красивый цветной четырехугольник.

Если я хочуЧтобы нарисовать один и тот же четырехугольник, то есть ту же позицию, но другим цветом, я в настоящее время пытаюсь удалить старый четырехугольник и нарисовать новый с новыми цветами.У меня есть случай использования, где четырехугольник (на самом деле их куча) всегда один и тот же, только цвет меняется.Могу ли я сохранить память / обработку и каким-то образом дать команду rgl просто изменить цвет уже нарисованного четырехугольника?

1 Ответ

1 голос
/ 21 сентября 2019

Вы не можете этого сделать.Есть способы скрыть цикл удаления / перерисовки, но ни один из них не экономит память или время.

Таким образом, ваш общий подход должен выглядеть примерно так:

library(rgl)

open3d()
xyz <- cbind(x = c(0,1,1,0,2,3,3,2), y = 0, z = c(0,0,1,1))
quads <- quads3d(xyz, col = rainbow(8))
saveSkip <- par3d(skipRedraw = TRUE)
pop3d(id = quads)
quads <- quads3d(xyz, col = terrain.colors(8))
par3d(saveSkip)

Это будет близко ккак можно быстрее, не заходя в C ++ и не изменяя исходный код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...