我试图使用vtk对象vtkVectorText渲染文本.它适用于单个3d位置.我需要的是在一些3d(vtkPoint)点上方放置一个3d文本.我尝试用vtkTextActor3d做这个,但是每个文本对象都需要一个单独的actor,我最终得到了10k演员,当我试图旋转场景时,这是非常糟糕和滞后的.
我还尝试应用一些appendFilter来创建一个vtkVectorText数组,从appendFilter的对象获取非结构化网格,然后将其转换为polydata,以便使用我想要的点位置渲染非结构化网格.它没有显示任何内容,因为我无法弄清楚执行此操作的最佳方法是什么.
有人可以帮我弄这个吗?
这是我上一部分的代码:
vtkSmartPointer<vtkAppendFilter> appendFilter = vtkSmartPointer<vtkAppendFilter>::New();
//for each point
for (int i = 0; i < N;i++) {
vtkSmartPointer<vtkVectorText> vecText = vtkSmartPointer<vtkVectorText>::New();
vecText->SetText("My text, needs to appear multiple times");
vecText->Update();
appendFilter->AddInputData(vecText->GetOutput());
appendFilter->Update();
}
vtkSmartPointer<vtkUnstructuredGrid> unstructuredGrid = appendFilter->GetOutput();
unstructuredGrid->Allocate(N);
unstructuredGrid->SetPoints(points);
vtkSmartPointer<vtkGeometryFilter> geometryFilter = vtkSmartPointer<vtkGeometryFilter>::New();
geometryFilter->SetInputData(unstructuredGrid);
geometryFilter->Update();
vtkSmartPointer<vtkPolyDataMapper> textMapper = vtkSmartPointer<vtkPolyDataMapper>::New();
textMapper->SetInputConnection(geometryFilter->GetOutputPort());
vtkSmartPointer<vtkActor> textActor = vtkSmartPointer<vtkActor>::New();
textActor->SetMapper(textMapper);
textActor->GetProperty()->SetColor(0, 1, 0);
renderer->AddActor(textActor);
Run Code Online (Sandbox Code Playgroud) 我最近发现javafx 2.1对于我制作视频播放器的项目非常有用但是在成功之后我遇到了视频大小尺寸问题.换句话说,当我运行该程序,视频播放正常,我不能看到整个视频,因为它的尺寸比我的屏幕分辨率.什么大我可以在下面的代码做调整大小的视频在Windows7 64位的实际大小:
public class HelloFx extends Application {
public static void main(String[] args){
launch(args);
}
@Override
public void start(final Stage stage) throws Exception {
stage.setTitle("Movie Player");
final BorderPane root = new BorderPane();
final Media media = new Media("file:///Users//user//Videos//Sintel.mp4");
final MediaPlayer player = new MediaPlayer(media);
final MediaView view = new MediaView(player);
// System.out.println("media.width: "+media.getWidth());
root.getChildren().add(view);
final Scene scene = new Scene(root, 400, 400, Color.BLACK);
stage.setScene(scene);
stage.show();
player.play();
player.setOnReady(new Runnable() {
@Override
public void run() {
int w = player.getMedia().getWidth();
int …Run Code Online (Sandbox Code Playgroud)