// 创建点云数据 float sacle =1; const long num_points = 1000000; std::vector<gp_Pnt> points; for(int i=0;i<100;i++){ for(int j=0;j<100;j++){ for(int k=0;k<100;k++){ points.push_back(gp_Pnt(i*sacle, j*sacle, k*sacle)); } } } // 创建Graphic3d_ArrayOfPoints对象 Handle(Graphic3d_ArrayOfPoints) array_of_points = new Graphic3d_ArrayOfPoints(num_points); for (long i = 0; i < num_points; i++) { const gp_Pnt& p = points[i]; array_of_points->AddVertex(p.X(), p.Y(), p.Z()); } Handle(AIS_PointCloud) ais_pointcloud = new AIS_PointCloud(); ais_pointcloud->SetDisplayMode(Aspect_TOM_POINT); ais_pointcloud->SetColor(Quantity_Color(255/255,1/255,1/255,Quantity_TypeOfColor::Quantity_TOC_RGB)); ais_pointcloud->SetPoints(array_of_points); Graphic3d_MaterialAspect material(Graphic3d_NOM_GOLD); ais_pointcloud->SetMaterial(material); myContext->Display(ais_pointcloud, true); updateView(); QTimer* timer=new QTimer(this); connect(timer,&QTimer::timeout, this, [=](){ gp_Trsf aTrsf_Translation; //aTrsf_Translation.SetTranslation(gp_XYZ({-0.5,0,0})); aTrsf_Translation.SetRotation(gp_Ax1({0,0,0},{0,0,1}),0.01); BRepBuilderAPI_Transform trans(bShape->Shape(),aTrsf_Translation,false); bShape->SetShape(trans.Shape()); // aShape->SetShape(cut_thread->cshape); // myContext->Redisplay(aShape,true); myContext->Redisplay(bShape,true); updateView(); }); timer->start(10);