Q_label[i], color='black', fontsize=m_fontsize) R_label = [r'$r_{i-1}$', r'$r_{i}$', r'$r_{i+1}$'] for i in [0, 1, 2]: ax.text(R[i, 0] + 0., R[i, 1] + 0., R[i, 2] - 0.7, R_label[i], color='0.1', fontsize=m_fontsize) d0_util_3d.find_pair_point_in_Traj_and_draw(R[0], Q, m_text='', ax=ax, fontsize=14, color='0.1', linestyle='--') d0_util_3d.find_pair_point_in_Traj_and_draw(R[1], Q, m_text=r'$ BDS(r_{i})$', ax=ax, fontsize=14, color='0.1', linestyle='--') ax.legend() # 显示图例 ax.set_xlabel('x/m', fontsize=m_fontsize) ax.set_ylabel('y/m', fontsize=m_fontsize) ax.set_zlabel('z/m', fontsize=m_fontsize)
def draw_a(): fig = plt.figure() ax = fig.add_subplot(111, projection='3d') m_fontsize = 14 small_fontsize = 11 Q, R = get_data() ax.plot(Q[:, 0], Q[:, 1], Q[:, 2], label='Q', linestyle='-', linewidth=2, color='black', marker='H') ax.plot(R[:, 0], R[:, 1], R[:, 2], label='R', linestyle='-', linewidth=2, color='0', marker='H') draw_line(ax, Q[0], R[0], color='0', linewidth=1.5) draw_line(ax, Q[1], R[1], color='0', linewidth=1.5) draw_line(ax, Q[1], R[2]) draw_line(ax, Q[2], R[3]) # m_label = [r'$q_{0}=DTW(r_0)$',r'$q_{1}=DTW(r_1)$', r'$q_{2}$'] m_label = [r'$q_{0}$', r'$q_{1}$', r'$q_{2}$'] for i in range(0, len(Q)): ax.text(Q[i, 0] - 0.5, Q[i, 1] + 1, Q[i, 2], m_label[i], color='black', fontsize=m_fontsize) # ax.text(Q[2, 0]+1.5, Q[2, 1], Q[2, 2], m_label[2], color='black', fontsize=m_fontsize) for i in range(len(R)): ax.text(R[i, 0] - 0.5, R[i, 1], R[i, 2], r'$r_{' + str(i) + '}$', color='0.3', fontsize=m_fontsize) ax.text(Q[0, 0] + 5, Q[0, 1], Q[0, 2], r'$DTW-DBS(r_0)$', color='0.1', fontsize=small_fontsize) ax.text(Q[1, 0] + 5, Q[1, 1], Q[1, 2], r'$DTW-DBS(r_1)$', color='0.1', fontsize=small_fontsize) ################################################################################################################### # 寻找r2的对应点 ################################################################################################################### min_point = find_pair_point_in_Traj_and_draw(R[2], [Q[1], Q[2]], color='0.1', ax=ax) ax.text(min_point[0] + 5, min_point[1], min_point[2], r'$DTW-DBS(r_2)$', color='0.1', fontsize=small_fontsize) ax.legend() # 显示图例 ax.set_xlabel('x/m', fontsize=m_fontsize) ax.set_ylabel('y/m', fontsize=m_fontsize) ax.set_zlabel('z/m', fontsize=m_fontsize) # 设置坐标轴刻度 ax.set_xticks([]) ax.set_yticks([]) ax.set_zticks(np.arange(0, 7, 2)) plt.xlim(-1, 10) # plt.ylim(0, 2) ax.set_zlim(0, 7) ax.view_init(elev=20, azim=100) # 调整视角 plt.show()
def draw_2(fig, ax): Q, R = get_data() ax.plot(Q[:, 0], Q[:, 1], Q[:, 2], label='Q', linestyle='-', linewidth=2, color='black', marker='H') ax.plot(R[:, 0], R[:, 1], R[:, 2], label='R', linestyle='-', linewidth=2, color='0.4', marker='*') # 获取DTW对应点 DTW_pair = get_pair_index_in_DTW(Q=R, R=Q) print(DTW_pair) for i in range(1, len(DTW_pair)): pair = DTW_pair[i] draw_line(ax, Q[pair[1]], R[pair[0]]) for i in range(0, len(Q) - 1): ax.text(Q[i, 0] - 0.7, Q[i, 1] + 1, Q[i, 2] - 0.8, r'$q_{' + str(i) + '}$', color='black', fontsize=m_fontsize) ax.text(Q[-1, 0] + 0.2, Q[-1, 1], Q[-1, 2] + 0.2, r'$q_{' + str(3) + '}$', color='black', fontsize=m_fontsize) for i in range(len(R) - 1): ax.text(R[i, 0] + 0.2, R[i, 1], R[i, 2] + 0., r'$r_{' + str(i) + '}$', color='0.4', fontsize=m_fontsize) ax.text(R[-1, 0] + 0.2, R[-1, 1], R[-1, 2] + 0., r'$r_{' + str(5) + '}$', color='0.4', fontsize=m_fontsize) ################################################################################################################### # 寻找r0的对应点 ################################################################################################################### min_point = find_pair_point_in_Traj_and_draw(R[0], [Q[0], Q[1]], color='0.1', ax=ax) ax.text(min_point[0] - 2.6, min_point[1] - 0.5, min_point[2], r'$DTW-BDS(r_0)$', color='0.1', fontsize=small_fontsize) return "F:\\毕业设计大文件夹\\picture\\chapter\\Fig3-10\\2.jpg"
def draw_5(fig, ax): Q, R = get_data() ax.plot(Q[:, 0], Q[:, 1], Q[:, 2], label='Q', linestyle='-', linewidth=2, color='black', marker='H') ax.plot(R[:, 0], R[:, 1], R[:, 2], label='R', linestyle='-', linewidth=2, color='0.4', marker='*') # 获取DTW对应点 # DTW_pair = get_pair_index_in_DTW(Q=R, R=Q) # print(DTW_pair) # for i in range(1, len(DTW_pair)): # pair = DTW_pair[i] # draw_line(ax, Q[pair[1]], R[pair[0]]) for i in range(0, len(Q) - 1): ax.text(Q[i, 0] - 0.7, Q[i, 1] + 1, Q[i, 2] - 0.8, r'$q_{' + str(i) + '}$', color='black', fontsize=m_fontsize) ax.text(Q[-1, 0] + 0.2, Q[-1, 1], Q[-1, 2] + 0.2, r'$q_{' + str(3) + '}$', color='black', fontsize=m_fontsize) for i in range(len(R) - 1): ax.text(R[i, 0] + 0.2, R[i, 1], R[i, 2] + 0., r'$r_{' + str(i) + '}$', color='0.4', fontsize=m_fontsize) ax.text(R[-1, 0] + 0.2, R[-1, 1], R[-1, 2] + 0., r'$r_{' + str(5) + '}$', color='0.4', fontsize=m_fontsize) ################################################################################################################### # 优化r2的对应点 ################################################################################################################### b_x, b_y, b_z = -2.6, -0.5, 0 min_point = find_pair_point_in_Traj_and_draw(R[0], [Q[0], Q[1]], color='0.1', ax=ax) ax.text(min_point[0] + b_x, min_point[1] + b_y, min_point[2], r'', color='0.1', fontsize=small_fontsize) min_point = find_pair_point_in_Traj_and_draw(R[1], [Q[0], Q[1]], color='0.1', ax=ax) ax.text(min_point[0] + b_x, min_point[1] + b_y, min_point[2], r'', color='0.1', fontsize=small_fontsize) min_point = find_pair_point_in_Traj_and_draw(R[2], [Q[1], Q[2]], color='0.1', ax=ax) ax.text(min_point[0] + b_x, min_point[1] + b_y, min_point[2], r'', color='0.1', fontsize=small_fontsize) min_point = find_pair_point_in_Traj_and_draw(R[3], [Q[1], Q[2]], color='0.1', ax=ax) ax.text(min_point[0] + b_x, min_point[1] + b_y, min_point[2], r'', color='0.1', fontsize=small_fontsize) min_point = find_pair_point_in_Traj_and_draw(R[4], [Q[1], Q[2]], color='0.1', ax=ax) ax.text(min_point[0] + b_x + 0.1, min_point[1] + b_y - 0.3, min_point[2] - 0.7, r'', color='0.1', fontsize=small_fontsize) min_point = find_pair_point_in_Traj_and_draw(R[5], [Q[2], Q[3]], color='0.1', ax=ax) ax.text(min_point[0] + b_x - 0.6, min_point[1] + b_y, min_point[2], r'', color='0.1', fontsize=small_fontsize) return "F:\\毕业设计大文件夹\\picture\\chapter\\Fig3-10\\5.jpg"
ax.plot([Q[1, 0], R[1, 0]], [Q[1, 1], R[1, 1]], [Q[1, 2], R[1, 2]], linestyle='--', linewidth=1, color='0.5') # ax.plot([Q[0, 0], R[1, 0]], [Q[0, 1], R[1, 1]], [Q[0, 2], R[1, 2]], linestyle='--', linewidth=1, color='0.5') ax.plot([Q[2, 0], R[2, 0]], [Q[2, 1], R[2, 1]], [Q[2, 2], R[2, 2]], linestyle='--', linewidth=1, color='0.5') m_label = [r'$q_{0}=DTW(r_0)$',r'$q_{1}=DTW(r_1)$', r'$q_{2}$'] for i in range(0, len(Q)-1): ax.text(Q[i, 0] + 6, Q[i, 1], Q[i, 2] , m_label[i], color='black', fontsize=m_fontsize) ax.text(Q[2, 0]+1.5, Q[2, 1], Q[2, 2], m_label[2], color='black', fontsize=m_fontsize) for i in range(len(R)): ax.text(R[i, 0] + 0.2, R[i, 1], R[i, 2] + 1, r'$r_{'+str(i)+'}$', color='0.3', fontsize=m_fontsize) ################################################################################################################### # 寻找r0的对应点 ################################################################################################################### min_point = find_pair_point_in_Traj_and_draw(R[0], [Q[0], Q[1]], color='0.1', ax=ax) ax.text(min_point[0]+6, min_point[1]-1, min_point[2], r'$DTW-DBS(r_0)$', color='0.1', fontsize=m_fontsize) ################################################################################################################### # 寻找r1的对应点 ################################################################################################################### min_point = find_pair_point_in_Traj_and_draw(R[1], [Q[0], Q[1]], color='0.1', ax=ax) ax.text(min_point[0] + 6, min_point[1] + 1, min_point[2], r'$DTW-DBS(r_1)$', color='0.1', fontsize=m_fontsize) ax.legend() # 显示图例 ax.set_xlabel('x/m', fontsize=m_fontsize) ax.set_ylabel('y/m', fontsize=m_fontsize) ax.set_zlabel('z/m', fontsize=m_fontsize)