美文网首页
椭偏曲线的绘制-Mayavi

椭偏曲线的绘制-Mayavi

作者: 鹿呀鹿呀快开门 | 来源:发表于2020-08-12 11:14 被阅读0次

1. 电磁波的传播

电磁波是纵波,一维电磁波可以表示为y = A*np.sin(k*x-w*t)的形式,在传播方向x和传播时间t组成的平面内波动情况,用Mayavi可以很快作出图形,代码如下所示, 采用mlab.surf可以作出曲面图。

from mayavi import mlab
import numpy as np
x, t = np.mgrid[0:2*np.pi:50j, 0:2*np.pi:50j]
A, k, w = 1, 1, 1
y = A * np.sin(k*x - w*t)

mlab.surf(x, t, y)
mlab.axes()
mlab.show()
光在x-t平面内的传播

2. 光的偏振

偏振光传播时,当p光和s光之间存在相位差,表现为椭圆偏振光。圆偏振光是椭圆偏振光的一个特例。

  • 光用Mayavi画椭圆偏振光曲线,可以分别画出ps分量和合成的圆偏振光。代码如下,采用mlab.plot3d可以画出空间曲线。
import numpy as np
from mayavi import mlab
t=np.mgrid[-4*np.pi:4*np.pi:400j]   
t1=np.mgrid[-4*np.pi:4.2*np.pi:400j]  # t1用于时间坐标的绘制
mlab.plot3d(np.zeros_like(t1),np.zeros_like(t1),t1,color=(0.1,0.1,0.1))
mlab.plot3d(np.cos(t),np.zeros_like(t),t,color=(0.1,0.1,0.9))   # x分量
mlab.plot3d(np.zeros_like(t),np.cos(t+np.pi/2),t,color=(0.1,0.1,0.9))  # y分量
mlab.plot3d(np.cos(t),np.cos(t+np.pi/2),t,color=(0.9, 0.1, 0.1))
# mlab.axes()
mlab.show()
偏振光曲线
  • 用mlab.quiver3d函数可以作出空间的矢量。如下代码所示,mlab.quiver3d(x, y, z, u, v, w)中,x, y, z 代表矢量起始点的空间坐标,u,v,w为方向矢量。当p光和s光之间没有相位差时为线偏振状态。
import numpy as np
from mayavi import mlab

t = np.linspace(0, 4*np.pi, 100)
p = np.sin(t)
s = np.sin(t)
zero = np.zeros_like(t)

mlab.plot3d(zero, p, t)
mlab.plot3d(s, zero, t)
mlab.plot3d(zero, zero, t, tube_radius='0.005')

mlab.quiver3d(zero, zero, t, zero, p, zero)
mlab.quiver3d(zero, zero, t, s, zero, zero)
mlab.outline()

mlab.show()
线偏振
  • 当p光和s光之间的相位差为pi/2,且p光与s光的振幅相等时,为圆偏振光。p光和s光的分量作图如下
import numpy as np
from mayavi import mlab

t = np.linspace(0, 4*np.pi, 100)
p = np.sin(t)
s = np.cos(t)
zero = np.zeros_like(t)

mlab.plot3d(zero, p, t)
mlab.plot3d(s, zero, t)
mlab.plot3d(zero, zero, t, tube_radius='0.005')

mlab.quiver3d(zero, zero, t, zero, p, zero)
mlab.quiver3d(zero, zero, t, s, zero, zero)
mlab.outline()

mlab.show()
圆偏振光
  • 圆偏振光变化如下代码所示
import numpy as np
from mayavi import mlab
t = np.linspace(0, 4*np.pi, 100)
p = np.sin(t)
s = np.cos(t)
zero = np.zeros_like(t)

mlab.plot3d(s, p, t)
mlab.plot3d(zero, zero, t, tube_radius='0.005')
mlab.quiver3d(zero, zero, t, s, p, zero)
mlab.outline()
mlab.show()
圆偏振光

相关文章

  • 椭偏曲线的绘制-Mayavi

    1. 电磁波的传播 电磁波是纵波,一维电磁波可以表示为的形式,在传播方向和传播时间组成的平面内波动情况,用Maya...

  • 区块链应用:椭圆曲线数字签名算法ECDSA

    1 椭圆曲线密码学 椭圆曲线密码学(Elliptic Curve Cryptography,缩写ECC),是基于椭...

  • 科学计算Python基本库

    NumPy-快速处理数据 SciPy-数值计算库 matplotlib-绘制精美的图表 Mayavi-更方便的可视化

  • PPT版式设计第18期:PPT中的曲线设计

    今天和大家聊聊PPT中的曲线设计。 上图中的曲线是用PPT绘制的,也是本例设计的重点技能,曲线弧形的绘制,那绘制这...

  • python可视化笔记

    1、绘制多个subplot 绘制多个brand的模型的auc、pr曲线图: 绘制曲线,3个brand、3种算法,因...

  • 使用贝塞尔曲线绘制水波纹

    示例: 思路: 使用贝塞尔曲线绘制正弦曲线;使用CAShapeLayer绘制形状;使用CADisplayLink做...

  • ECC椭圆曲线加密算法(一)

    随着区块链的大热,椭圆曲线算法也成了密码学的热门话题。在Bitcoin 生成地址 中使用到了椭圆曲线加密算法。 椭...

  • R语言可视化(三十八):ROC曲线图绘制

    38. ROC曲线图绘制 清除当前环境中的变量 设置工作目录 使用ROCR包绘制ROC曲线 使用pROC包绘制RO...

  • 绘制曲线

    如果游戏中有个飞行子弹轨迹出了问题那咋解决呢?通常来说,直观看到曲线后,就能定位问题那如何看到曲线呢? 将每个x对...

  • 第52天 blender曲线知识补充

    日常工作需求,也是对之前曲线认知的补充 曲线绘制,还是使用AI比较顺手。 工作流程就是: 1、在AI中绘制曲线形状...

网友评论

      本文标题:椭偏曲线的绘制-Mayavi

      本文链接:https://www.haomeiwen.com/subject/qrepdktx.html