主要内容

将相机移动到场景

技术摘要

通过将相机移动到三维空间,给您带来的效果是您与摄像机一起飞行的印象,就好像在飞机中一样。您可以飞过场景的区域,这些区域可能会被场景中的物体掩盖,也可以通过将相机专注于特定点来飞行场景。

为了实现这些效果,您沿特定路径移动相机,X-例如,在一系列步骤中。要产生飞行,请同时移动相机位置和相机目标。

下面的示例利用了飞行效果来查看由风速矢量场定义的卷中绘制的等截面的内部。该数据代表北美的气流。

该示例采用了许多可视化技术。它用

  • 等音表和锥图,以说明流过体积的流动

  • 照明以照亮卷

  • 流线以定义通过卷的相机的路径

  • 相机位置,相机目标和光线的协调运动

绘制卷数据

第一步是绘制等曲面并使用锥图绘制气流。

等法表,,,,等法,,,,降低, 和Coneplot有关使用这些命令的信息。

设置数据纵横比(Daspect) 至[1,1,1]在绘制锥图之前,启用MATLAB®软件可正确计算锥体的大小以获取最终视图。

加载wind_speed = sqrt(u。^2 + v。^2 + w。^2);图p = patch(isosurface(x,y,z,wind_speed,35));等法(x,y,z,wind_speed,p)p.faceColor = [0.75,0.25,0.25];P.EdgeColor = [0.6,0.4,0.4];[f,vt] = redionPatch(isosurface(x,y,z,wind_speed,45),0.05);daspect([1,1,1]);hcone = coneplot(x,y,z,u,v,w,w,vt(:1),vt(:,2),vt(:,3),2);hcone.facecolor ='蓝色的';hcone.edgecolor ='没有任何';

设置视图

您需要定义查看参数,以确保正确显示场景:

  • 选择透视图投影提供了深度的感知,因为摄像机穿过isosurface的内部(坎罗)。

  • 将相机视角设置为固定值可防止MATLAB自动调整角度以包含整个场景,并以所需的数量进行缩放(卡姆瓦)。

    坎罗看法卡姆瓦(25)

指定光源

将光源定位在相机位置,并修改等音表面的反射率特征,锥体可以增强场景的现实主义:

  • 在相机位置创建光源提供了一个“大灯”,该灯与相机一起穿过等图内部(CAMLIGHT)。

  • 设置等字面的反射特性给出了深色内部的外观(环境发展设置为0.1)具有高度反射材料(骨气长扩散体长设置为1)。

  • 设置骨气长锥到1的锥体使它们具有很高的反射性。

    hlight = camlight(“大灯”);p.AmbientStrength = 1;p.spularstrength = 1;diffusEstrength = 1;hcone.pecularstrength = 1;设置(GCF,'颜色',,,,'K')(GCA,'颜色',[0,0,0.25])

选择照明方法

利用Gouraud光滑照明的照明:

灯光Gouraud

将相机路径定义为流线

流线表示矢量场中的流动方向。此示例使用X-,,,,Y-, 和z-协调单流线的数据以映射通过卷的路径。然后沿着这条路移动相机。任务包括

  • 从该点开始创建流线x = 80,,,,y = 30,,,,Z = 11

  • 得到X-,,,,Y-, 和z-协调流线的数据。

  • 删除流线(您也可以使用Stream3计算流线数据而不实际绘制流线)。

    hsline = strainline(x,y,z,u,v,w,80,30,11);xd = hsline.xdata;yd = hsline.ydata;zd = hsline.zdata;删除(hsline)

实施苍蝇

要创建飞行,请沿着同一路径移动相机位置和相机目标。在此示例中,沿着相机目标进一步放置了五个元素X- 轴比相机。在相机目标X位置中添加了一个小值,以防止相机的位置并在条件XD(n)= XD(n+5)应该发生:

  • 更新相机位置和相机目标,以便它们都沿流线的坐标移动。

  • 与相机一起移动灯。

  • 称呼绘制显示每个举动的结果。

    为了i = 1:长度(xd)-5 campos([xd(i),yd(i),zd(i)])camtarget([xd(i+5)+min(xd)/500,yd(i),ZD(i)])凸轮(hlight,“大灯”)绘制结尾

Coneplot对于相同数据的固定可视化。