上一篇文章里我们学习了双轴旋转的3D模型制作方法,由于建立的字段比较少,所以相对简单。

本篇文章,我们学习三轴旋转的3D模型,难度略微有些增加。

建立数据集

我们用上一篇中的第二个数据集,也就是增加了连线的数据

group,id,x,y,z
1-2,1,0,0,0
1-2,2,0,1,0
1-4,1,0,0,0
1-4,4,0,0,1
1-5,1,0,0,0
1-5,5,2,0,0
2-3,2,0,1,0
2-3,3,0,1,1
2-6,2,0,1,0
2-6,6,2,1,0
3-4,3,0,1,1
3-4,4,0,0,1
3-7,3,0,1,1
3-7,7,2,1,1
4-8,4,0,0,1
4-8,8,2,0,1
5-6,5,2,0,0
5-6,6,2,1,0
5-8,5,2,0,0
5-8,8,2,0,1
6-7,6,2,1,0
6-7,7,2,1,1
7-8,7,2,1,1
7-8,8,2,0,1

创建计算字段

  • 创建参数XZ – Angle (Radians),浮点,4.7-6
  • 创建参数YZ – Angle (Radians),浮点,0-3.14
  • 创建参数XY – Angle (Radians),浮点,0-3.14

前两个参数和上一篇一样,新增了XY – Angle (Radians)这个参数,参数值的范围也可以自己调节。

  • x_rotated (xy)=[x]*COS([XY – Angle (Radians)])-[y]*SIN([XY – Angle (Radians)])
  • x_rotated=[x_rotated (xy)]*COS([XZ – Angle (Radians)])-[z]*SIN([XZ – Angle (Radians)])
  • z_rotated=[x_rotated (xy)]*SIN([XZ – Angle (Radians)])+[z]*COS([XZ – Angle (Radians)])
  • y_rotated (xy)=[y]*COS([XY – Angle (Radians)])+[x]*SIN([XY – Angle (Radians)])
  • y_rotated=-[z_rotated]*SIN([YZ – Angle (Radians)])+[y_rotated (xy)]*COS([YZ – Angle (Radians)])

开始做图

  • 将[x_rotated]拖到行功能区,[y_rotated]拖到列功能区。
  • 标记类型选择“圆”。
  • 将[group]字段拖到标记栏“详细信息”。
  • 将[id]拖到标记栏“详细信息”和“标签”。
  • 复制[x_rotated]字段,做双轴并同步轴。
  • 将[id]字段拖到标记栏“路径”里,类型改为“线”。

如果操作正确,效果如下:

上面是最基本的三轴旋转的3D模型制作方方,只是点线相连。长方形有6个面,如果增加难度,还需要用多边形绘制6个面。由于这里的6个面是4个点组成的多边形,所以上面的数据集就不能满足要求了,需要新建数据集。

新建数据集

group,index,id,x,y,z
1-2-3-4,1,1,0,0,0
1-2-3-4,2,2,0,1,0
1-2-3-4,3,3,0,1,1
1-2-3-4,4,4,0,0,1
1-2-3-4,5,1,0,0,0
5-6-7-8,1,5,2,0,0
5-6-7-8,2,6,2,1,0
5-6-7-8,3,7,2,1,1
5-6-7-8,4,8,2,0,1
5-6-7-8,5,5,2,0,0
2-3-7-6,1,2,0,1,0
2-3-7-6,2,3,0,1,1
2-3-7-6,3,7,2,1,1
2-3-7-6,4,6,2,1,0
2-3-7-6,5,2,0,1,0
1-2-6-5,1,1,0,0,0
1-2-6-5,2,2,0,1,0
1-2-6-5,3,6,2,1,0
1-2-6-5,4,5,2,0,0
1-2-6-5,5,1,0,0,0
3-4-8-7,1,3,0,1,1
3-4-8-7,2,4,0,0,1
3-4-8-7,3,8,2,0,1
3-4-8-7,4,7,2,1,1
3-4-8-7,5,3,0,1,1
1-4-8-5,1,1,0,0,0
1-4-8-5,2,4,0,0,1
1-4-8-5,3,8,2,0,1
1-4-8-5,4,5,2,0,0
1-4-8-5,5,1,0,0,0

这里大家要注意一下,每组数据是5行,为什么呢?理论上4个点的多边形只需要4行数据,系统会自动将首尾用直线相接,做成封闭的图形。但是我这里需要把线和面的数据整合到一起,如果绘制4个点的封闭连线,要首尾相接,就需要每组的第一行数据和最后一行数据重叠。所以每组数据用5行,可以同时满足绘制线和面的要求。

  • 用新数据集替换掉上面的数据。
  • 将上面标记类型为“圆”的标记卡改为“多边形”。
  • 将“线”和“多边形”两个标记卡里的路径都改为[index]。

至此绘制完毕。

操作并不难,关键是要理解数据集是怎建立的。我把做好工作簿放到了Public上,有兴趣的同学可以下载研究。

https://public.tableau.com/profile/jiangbin#!/vizhome/Simple3deffectdemo/3-_1

类似文章