这个程序使用PCL制作了一个2D动画。
主要绘制了黑白交替的同心圆和一个红色的正方体。
圆的半径会慢慢变小,实现黑白交替。
红色的正方体会从左边移动到右边。

视频演示:https://www.bilibili.com/video/BV1vpTp63EqK/
代码:
#include <iostream>
#include <map>
#include <vector>
#include <pcl/visualization/pcl_painter2D.h>
int main ()
{
pcl::visualization::PCLPainter2D *painter = new pcl::visualization::PCLPainter2D();
int winw = 800, winh = 600;
painter->setWindowSize (winw, winh);
int xpos = 0;
int r = winw;
int R = 50;
int inc = 5;
int noc = winw/R;
while (1)
{
//draw noc no of circles
for (int i = 0; i < noc; i++)
{
if (i % 2)
painter->setBrushColor (0, 0, 0, 200);
else
painter->setBrushColor (255, 255, 255, 200);
int rad = r – i*R;
if (rad < 0) { rad = winw + rad;}
painter->addCircle (winw/2, winh/2, rad);
}
r -= inc;
if (r < winw-R) r = winw + R;
painter->setBrushColor (255,0,0,100);
painter->addRect ((xpos += inc) % winw, 100, 100, 100);
//display
painter->spinOnce ();
painter->clearFigures ();
}
return 0;
}
参考:PCLPainter2D — Point Cloud Library 0.0 documentation


