五边形怎么画图片_网友问答:霓虹灯效果像素画怎么画?

摘要:网友问答:霓虹灯效果像素画怎么画?

关键词:霓虹灯,像素画,赛博朋克

撰文&编辑:三二 

教你画像素画首发 | 公众号 pixelart

本文共798个字,阅读大约需要2分钟。

霓虹灯会在灯管周围形成柔和的光晕,使用渐变颜色可以表现这种光晕效果,但是像素画不能像Photoshop加一个霓虹灯滤镜那样省事。

寻找参考资料

不会画或者要画一个主题没有思路都很正常,如果像基础推进项目,就需要寻找参考资料。

非像素霓虹灯效果

在搜索引擎使用“霓虹灯效果”为关键词,可以很容易找到很多霓虹灯效果的图片。

b2dcd335a4c6a7bb1311d5dcbba5657f.png

用Photosop或Aseprite将图片缩小并减少颜色,就可以获得粗糙版的像素画。

这是一种非常简便的可以获得参考和有用信息的方法。

f72823ff608351223328769300edb7f4.png

观察缩小后的图片可知:

  • 1、霓虹灯效果的明暗对比非常强烈,通常背景比较暗,发光灯管最亮,光的颜色由灯管决定
  • 2、霓虹灯光发出后会发生衰减,在视觉上表现出光晕效果
  • 3、霓虹灯光源由2部分组成:1、灯管和灯管周围的光线;2、灯光照亮周围环境形成的光圈

像素画霓虹灯效果

为了更有把握,在搜索引擎使用“霓虹灯效果像素画”为关键词(小贴士:如果中文无法搜索到有效结果,可以尝试使用英文,不会翻译的可以用翻译引擎翻译为英文关键词再搜索)。

338865e94d1aa11f79c364a3fd1cceb1.png
独立游戏《迷雾侦探》截图

迷雾侦探直接使用了位图发光效果。

其实这样画也是可以的:霓虹灯(像素画)+发光效果(位图或粒子系统),但是不属于纯粹的像素画。

像素画霓虹灯绘画步骤

经过前面的分析之后,我们就可以快开始画霓虹灯效果了。

1、首先画好想要添加霓虹灯效果的图案或文字。

f63a0807a8160e6024e56cfbb3056d5a.png

2、然后修改颜色为接近白色的亮黄色。

435ea5109ab0f4f9ff440899238ce16f.png

3、描边1像素,颜色使用饱和度比较高的黄色。这里需要注意:像素画描边不能太多,多了就会很难看。描边1次效果最好。

57a9696007350638bcf22e127cd52c4d.png

4、加上深色背景,然后画出霓虹灯的影子。

692e32704f737fa3cc2135546755f6e6.png

5、再次给霓虹灯描边,这次使用背景色,这样就在霓虹灯周围形成了细微的光晕。

956fb808528d0b3e9f7a0cda5fe6d452.png

6、将画好的像素画放到场景中查看效果。

69726d84c3f868d62ad4535b2334b8c1.png

加上光晕效果会更好。

4f708c8a148d83d7854481bf619f4e6e.png

完。

本账号系网易新闻-网易号“各有态度”签约账号

8465e445957393e6fc0fdbe82c9faf9f.png

c2c25bbf0317883c7e6fe95e9c53e78a.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以,以下是示例代码: #include <ros/ros.h> #include <geometry_msgs/Twist.h> #include <turtlesim/Pose.h> #include <math.h> const double PI = 3.14159265359; int main(int argc, char **argv) { ros::init(argc, argv, "turtle_polygon"); ros::NodeHandle nh; ros::Publisher vel_pub = nh.advertise<geometry_msgs::Twist>("/turtle1/cmd_vel", 10); ros::Subscriber pose_sub = nh.subscribe("/turtle1/pose", 10, poseCallback); ros::Rate loop_rate(10); while (ros::ok()) { geometry_msgs::Twist vel_msg; // Move forward vel_msg.linear.x = 2.; vel_msg.linear.y = .; vel_msg.linear.z = .; // Turn vel_msg.angular.x = .; vel_msg.angular.y = .; vel_msg.angular.z = 2. * PI / 5.; // Publish velocity message vel_pub.publish(vel_msg); ros::spinOnce(); loop_rate.sleep(); } return ; } void poseCallback(const turtlesim::Pose::ConstPtr& pose_msg) { ROS_INFO("Turtle position: (%f, %f)", pose_msg->x, pose_msg->y); } ### 回答2: 当然可以!以下是一个给ROS机器人turtlesim五边形轨迹的示例代码: ```python #!/usr/bin/env python import rospy from geometry_msgs.msg import Twist def draw_polygon(): rospy.init_node('draw_polygon', anonymous=True) velocity_publisher = rospy.Publisher('/turtle1/cmd_vel', Twist, queue_size=10) vel_msg = Twist() # 设置线速度和角速度 vel_msg.linear.x = 1.0 # 线速度为1 vel_msg.angular.z = 1.0 # 角速度为1 # 设定移动距离和旋转角度 distance = 2.0 # 五边形的边长 angle = 72.0 # 五边形的内角 # 计算移动所需时间和旋转所需时间 linear_duration = distance / vel_msg.linear.x angular_duration = angle / vel_msg.angular.z # 移动 rospy.loginfo("开始五边形轨迹...") for _ in range(5): rospy.loginfo("前进") velocity_publisher.publish(vel_msg) rospy.sleep(linear_duration) rospy.loginfo("停止") vel_msg.linear.x = 0 velocity_publisher.publish(vel_msg) rospy.sleep(1) # 停止1秒 rospy.loginfo("旋转") vel_msg.angular.z = 1.0 velocity_publisher.publish(vel_msg) rospy.sleep(angular_duration) rospy.loginfo("停止") vel_msg.angular.z = 0 velocity_publisher.publish(vel_msg) rospy.sleep(1) # 停止1秒 rospy.loginfo("五边形轨迹完成!") if __name__ == '__main__': try: draw_polygon() except rospy.ROSInterruptException: pass ``` 你可以运行以上代码,然后观察turtlesim仿真器中机器人出的五边形轨迹。请注意,实际效果可能因你的ROS版本和配置而有所不同。 ### 回答3: 当然可以!下面是一段使用ROS机器人turtlesim五边形轨迹的示例代码: ```python #!/usr/bin/env python import rospy from geometry_msgs.msg import Twist from math import radians def draw_polygon(): rospy.init_node('draw_polygon', anonymous=True) velocity_publisher = rospy.Publisher('/turtle1/cmd_vel', Twist, queue_size=10) vel_msg = Twist() # 设置线速度(前进速度) vel_msg.linear.x = 2 vel_msg.linear.y = 0 vel_msg.linear.z = 0 # 设置角速度(旋转速度) vel_msg.angular.x = 0 vel_msg.angular.y = 0 vel_msg.angular.z = radians(72) # 每次旋转72° # 发布速度消息,使机器人运动 velocity_publisher.publish(vel_msg) rospy.Rate(1).sleep() # 设置1秒的睡眠时间,让机器人旋转一次 # 重复发布速度消息,使机器人五边形轨迹 for _ in range(4): vel_msg.angular.z = radians(72) velocity_publisher.publish(vel_msg) rospy.Rate(1).sleep() # 停止机器人运动 vel_msg.linear.x = 0 vel_msg.angular.z = 0 velocity_publisher.publish(vel_msg) if __name__ == '__main__': try: draw_polygon() except rospy.ROSInterruptException: pass ``` 在该示例代码中,我们首先导入了所需的ROS和消息模块。然后,我们定义了一个名为`draw_polygon()`的函数,它是我们绘制五边形轨迹的主要功能。 在`draw_polygon()`函数中,我们首先初始化了节点并创建了一个用于发布速度消息的发布者。然后,我们设置了机器人的线速度和角速度。线速度设置为2(前进速度),角速度每次旋转72°。然后,我们开始发布速度消息,并通过睡眠1秒的时间让机器人旋转一次。 接下来,我们使用循环四次,每次都会调整角速度,然后发布速度消息,使机器人五边形轨迹。最后,我们将线速度和角速度设置为0,以停止机器人的运动。 最后,在`main`函数中,我们调用`draw_polygon()`函数,并捕获`ROSRosInterruptException`异常以确保程序正常运行。 希望以上代码能满足您的需求,并能成功在ROS机器人turtlesim中绘制出五边形轨迹!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值