至于官方文档http://docs.enthought.com/mayavi/mayavi/auto/mlab_helper_functions.html#mayavi.mlab.points3d 我可以为x,y,z和s的每个mayavi.mlab.points3d数组设置-标量值。 但是我还需要为不同的点定义颜色。 例如:
#include <stdio.h>
typedef unsigned char mac_t[6];
void mac_print(mac_t mac);
int main(void) {
mac_t macs[3]={0};
//mac1
macs[0][0]=0x00;
macs[0][1]=0x00;
macs[0][2]=0x00;
macs[0][3]=0x00;
macs[0][4]=0x00;
macs[0][5]=0x00;
//mac2
macs[1][0]=0x01;
macs[1][1]=0x01;
macs[1][2]=0x01;
macs[1][3]=0x01;
macs[1][4]=0x01;
macs[1][5]=0x01;
//mac3
macs[2][0]=0x02;
macs[2][1]=0x02;
macs[2][2]=0x02;
macs[2][3]=0x02;
macs[2][4]=0x02;
macs[2][5]=0x02;
mac_print(macs[0]);
mac_print(macs[1]);
mac_print(macs[2]);
}
void mac_print(mac_t mac) {
printf("%02x:%02x:%02x:%02x:%02x:%02x\n",mac[0],mac[1],mac[2],mac[3],mac[4],mac[5]);
}
我如何定义每个点的颜色:
x = [1,1,1,0,1]
y = [2,2,0,1,0]
z = [1,2,3,4,5]
s = [.5,.2,1,.5,.5]
对于mlab.surf,可以使用lut manager。 http://docs.enthought.com/mayavi/mayavi/auto/example_custom_colormap.html?highlight=colormap 但是lut不适用于字形对象(如果我没事的话)。
更新: 选项之一是创建按颜色按阵列分组的几个plot3d对象。但是也许有一种方法可以为一个对象设置颜色阵列。