python画一个玫瑰和一个爱心

yipeiwu_com6年前Python基础

节日用心准备的礼物,使用python画玫瑰和爱心,供大家参考,具体内容如下

#!/usr/bin/env python
#coding=utf-8
#女生节礼物
 
import rospy
from sensor_msgs.msg import LaserScan
import numpy
import copy
 
node_name = "Test_Maker"
 
class Test_Maker():
  def __init__(self):
    self.Define()
    rospy.Timer(rospy.Duration(0.5), self.Timer_CB1)
    rospy.Timer(rospy.Duration(0.5), self.Timer_CB2)
    rospy.Timer(rospy.Duration(0.5), self.Timer_CB3)
    rospy.Timer(rospy.Duration(0.5), self.Timer_CB4)
    rospy.spin()
 
  def Define(self):
    self.pub_scan1 = rospy.Publisher('test/test_scan1', LaserScan, queue_size=1)
    self.pub_scan2 = rospy.Publisher('test/test_scan2', LaserScan, queue_size=1)
    self.pub_scan3 = rospy.Publisher('test/test_scan3', LaserScan, queue_size=1)
    #慎用!!!!
    self.pub_scan4 = rospy.Publisher('test/test_scan4', LaserScan, queue_size=1)
 
  def Timer_CB1(self, e):
    data = LaserScan()
    data.header.frame_id = "base_link"
    data.angle_min = 0
    data.angle_max = numpy.pi*2
    data.angle_increment = numpy.pi*2 / 200
    data.range_max = numpy.Inf
    data.range_min = 0
    theta = 0
    for i in range(200):
      r = 8.* numpy.sin(5. * theta )
      data.ranges.append(copy.deepcopy(r))
      data.intensities.append(theta)
      r = 8.* numpy.sin(5. * -theta)
      data.ranges.append(copy.deepcopy(r))
      data.intensities.append(theta)
 
      theta += data.angle_increment
    data.header.stamp = rospy.Time.now()
    self.pub_scan1.publish(data)
 
  def Timer_CB2(self, e):
    data = LaserScan()
    data.header.frame_id = "base_link"
    data.angle_min = 0
    data.angle_max = numpy.pi*2
    data.angle_increment = numpy.pi*2 / 200
    data.range_max = numpy.Inf
    data.range_min = 0
    theta = 0
    for i in range(200):
      r = 8. * numpy.cos(5. * theta) + 1
      data.intensities.append(theta)
      data.ranges.append(copy.deepcopy(r))
      r = 8. * numpy.cos(5. * -theta) + 1
      data.intensities.append(theta)
      data.ranges.append(copy.deepcopy(r))
      theta += data.angle_increment
 
    data.header.stamp = rospy.Time.now()
    self.pub_scan2.publish(data)
 
  def Timer_CB3(self, e):
    data = LaserScan()
    data.header.frame_id = "base_link"
    data.angle_min = 0
    data.angle_max = numpy.pi*2
    data.angle_increment = numpy.pi*2 / 50
    data.range_max = numpy.Inf
    data.range_min = 0
    theta = 0
    for i in range(200):
      r = 2. * numpy.sin(5. * theta) + 1
      data.intensities.append(theta)
      data.ranges.append(copy.deepcopy(r))
      r = 2. * numpy.sin(5. * -theta) + 1
      data.intensities.append(theta)
      data.ranges.append(copy.deepcopy(r))
      theta += data.angle_increment
 
    data.header.stamp = rospy.Time.now()
    self.pub_scan3.publish(data)
 
  #慎用!!!!
  def Timer_CB4(self, e):
    data = LaserScan()
    data.header.frame_id = "base_link"
    data.angle_min = 0
    data.angle_max = numpy.pi*2
    data.angle_increment = data.angle_max / 200
    data.range_max = numpy.Inf
    data.range_min = 0
    theta = 0
    for i in range(200):
      r = 9. * numpy.arccos(numpy.sin(theta)) + 9
      data.ranges.append(r)
      theta += data.angle_increment
 
    data.header.stamp = rospy.Time.now()
    self.pub_scan4.publish(data)
 
if __name__ == '__main__':
  node_name = 'Test_Maker'
  rospy.init_node(node_name)
  try:
    Test_Maker()
  except rospy.ROSInterruptException:
    rospy.logerr('%s error'%node_name)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

3种python调用其他脚本的方法

1.用python调用python脚本 #!/usr/local/bin/python3.7 import time import os count = 0 str = ('pyt...

Python测试线程应用程序过程解析

这篇文章主要介绍了Python测试线程应用程序过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 在本章中,我们将学习线程应用程序...

python算法学习之计数排序实例

python算法学习之计数排序实例 复制代码 代码如下:# -*- coding: utf-8 -*- def _counting_sort(A, B, k):  &...

Python实现栈的方法

本文实例讲述了Python实现栈的方法。分享给大家供大家参考。具体实现方法如下: #!/usr/bin/env python #定义一个列表来模拟栈 stack = [] #进...

10行Python代码计算汽车数量的实现方法

10行Python代码计算汽车数量的实现方法

当你还是个孩子坐车旅行的时候,你玩过数经过的汽车的数目的游戏吗? 在这篇文章中,我将教你如何使用10行Python代码构建自己的汽车计数程序。以下是环境及相应的版本库: P...