二段式机械臂之逆解,Python-turtle的动画一例

作为练手,今天晚上写了个关节机器人的动画,二维的,贴图如下:
在这里插入图片描述有志趣做三维的,或六轴关节机器人的可加下作者微信号:daode1212

import math
from turtle import *

PI = 3.142
def jumpto(x, y):
    penup()
    goto(x,y)    
    
def line(x1, y1, x2, y2):
    jumpto(x1, y1);dot(15)
    pendown()
    goto(x2, y2);dot(15)
    penup()

def coosys():    
    pencolor('red');line(-1000, 0, 1000, 0);write("X",  font = ("Times", 18,"bold"))
    pencolor('green');line(0, -800, 0, 800);write("Y",  font = ("Times", 18,"bold"))

def plot(i):    
    for j in range(0,i+60,60):      
        xi=500+300*math.cos(PI*j/1800)+60*math.cos(PI*j/300)
        yi=400+300*math.sin(PI*j/1800)+60*math.sin(PI*j/300)
        if j==0:
            goto(xi,yi)
            pendown()
        goto(xi,yi);dot(5)
        update()
        
def   TwoLeg(xi,yi,i):
    clear()
    coosys()
    #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    L=500
    op=math.sqrt(xi**2+yi**2)
    fy=math.atan2(yi,xi)
    v=(2*L**2-xi**2-yi**2)/(2*L**2)
    af=math.acos(v)    
    ct=(math.pi-af)/2
    x1=L*math.cos(ct+fy)
    y1=L*math.sin(ct+fy)
    #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    width(8);line(0, 0, x1, y1);
    width(8);line(x1, y1, xi, yi);  
    goto(x1, y1);dot(25)
    goto(0, 0);dot(25)
    width(1);plot(i)   

def main():
    reset()
    setworldcoordinates(-200,-100,1200,1000)#设置坐标系
    tracer(False)
    hideturtle()
    i=0
    while i<3600:
        xi=500+300*math.cos(PI*i/1800)+60*math.cos(PI*i/300)
        yi=400+300*math.sin(PI*i/1800)+60*math.sin(PI*i/300)
        TwoLeg(xi,yi,i)  
        i=i+30
    write("   完成一周",  font = ("Times", 18,"bold"))
    color(1,0,0);goto(200,800);write("二段式机械臂之逆解",  font = ("黑体", 24,"bold"))
    ontimer(main,1000)

if __name__ == "__main__":
    main()
    mainloop()
#作者:八塔机器人有限公司软件部,  ---X.daode1212,2020-10-02 
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值