简体   繁体   English

Python | 我预计不会出现的 Plot

[英]Python | The Plot I expected don't show up

The image I thought was this one.我想的图像是这个。

在此处输入图像描述

But.. I only get this empty one every time I try.但是..我每次尝试都只得到这个空的。

在此处输入图像描述

I don't know why the line is missing.. and what I am missing..我不知道为什么这条线不见了..以及我缺少什么..

import math
from matplotlib import pyplot as plt
import numpy as np

dx=42; dy=-17; ab=10.5;  bc=42;  cd=24; be=65; ef=5;
ml = np.arange(0, 2*math.pi, math.pi/180)

for theta in ml:
    alpha = -90*math.pi/180
    P=2*cd*(dx-ab+math.cos(theta))
    Q=2*cd*(dy-ab+math.sin(theta))
    R=(dx**2)+(dy**2)+(ab**2)+(cd**2)-(bc**2)-(2*ab+(math.cos(theta))+dy+(math.sin(theta)))

    math_cos_phi=((-P*R)-(Q*math.sqrt((P**2)+(Q**2)-(R**2))))/((P**2)+(Q**2));
    math_sin_phi=((-Q*R)+(P*math.sqrt((P**2)+(Q**2)-(R**2))))/((P**2)+(Q**2));
    a = math_cos_phi;  b = math_sin_phi
    phi=math.atan2(a,b);

    math.cos_psi=((dx+cd+(math_cos_phi))-(ab+math.cos(theta)))/bc;
    math.sin_psi=((dy+cd+(math_sin_phi))-(ab+math.sin(theta)))/bc;
    c = math.cos_psi;  d = math.sin_psi;

    psi=math.atan2(c,d); 
    Fx=ab*math.cos(theta)+be*math.cos(psi)+ef*math.cos(psi+alpha);
    Fy=ab*math.sin(theta)+be*math.sin(psi)+ef*math.sin(psi+alpha);
    plt.plot(Fx,Fy, c = 'g', linewidth=2);
plt.show()

Data=[theta*180/math.pi,Fx,Fy];

Did you mean this?你是这个意思吗? (you have your plot inside the loop for each point. You need to move it to outside of the loop and accumulate all the Fx's and Fy's ): (您在每个点的循环内都有 plot。您需要将其移到循环外并累积所有 Fx 和 Fy ):

import math
from matplotlib import pyplot as plt
import numpy as np

dx=42; dy=-17; ab=10.5;  bc=42;  cd=24; be=65; ef=5;
ml = np.arange(0, 2*math.pi, math.pi/180)
Fx, Fy = [], []

for theta in ml:
    alpha = -90*math.pi/180
    P=2*cd*(dx-ab+math.cos(theta))
    Q=2*cd*(dy-ab+math.sin(theta))
    R=(dx**2)+(dy**2)+(ab**2)+(cd**2)-(bc**2)-(2*ab+(math.cos(theta))+dy+(math.sin(theta)))

    math_cos_phi=((-P*R)-(Q*math.sqrt((P**2)+(Q**2)-(R**2))))/((P**2)+(Q**2));
    math_sin_phi=((-Q*R)+(P*math.sqrt((P**2)+(Q**2)-(R**2))))/((P**2)+(Q**2));
    a = math_cos_phi;  b = math_sin_phi
    phi=math.atan2(a,b);

    math.cos_psi=((dx+cd+(math_cos_phi))-(ab+math.cos(theta)))/bc;
    math.sin_psi=((dy+cd+(math_sin_phi))-(ab+math.sin(theta)))/bc;
    c = math.cos_psi;  d = math.sin_psi;

    psi=math.atan2(c,d); 
    Fx.append(ab*math.cos(theta)+be*math.cos(psi)+ef*math.cos(psi+alpha))
    Fy.append(ab*math.sin(theta)+be*math.sin(psi)+ef*math.sin(psi+alpha))
plt.plot(Fx,Fy, c = 'g', linewidth=2);
plt.show()

Data=[theta*180/math.pi,Fx,Fy];

output: output:

在此处输入图像描述

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM