python画一个玫瑰和一个爱心
节日用心准备的礼物,使用python画玫瑰和爱心,供大家参考,具体内容如下
#!/usr/bin/envpython
#coding=utf-8
#女生节礼物
importrospy
fromsensor_msgs.msgimportLaserScan
importnumpy
importcopy
node_name="Test_Maker"
classTest_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()
defDefine(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)
defTimer_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
foriinrange(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)
defTimer_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
foriinrange(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)
defTimer_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
foriinrange(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)
#慎用!!!!
defTimer_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
foriinrange(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()
exceptrospy.ROSInterruptException:
rospy.logerr('%serror'%node_name)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。