当前位置: 首页 > article >正文

如何用matlab画一条蛇

在这里插入图片描述

文章目录

  • 源代码
  • 运行结果
  • 代码说明
  • 结果

源代码

% 画蛇的代码
% 2025-01-28/Ver1
% 清空环境
clc;
clear;
close all;

% 定义蛇的身体坐标
t = linspace(0, 4*pi, 100); % 参数化变量
x = t;                       % x坐标
y = sin(t) + 0.5 * sin(3*t); % y坐标,形成更复杂的波动形状

% 绘制蛇的身体
figure;
hold on;
fill(x, y, 'g', 'EdgeColor', 'k', 'LineWidth', 1.5); % 填充蛇的身体

% 绘制蛇的头部
head_x = [4*pi, 4*pi+0.5, 4*pi+0.5, 4*pi]; % 头部的x坐标
head_y = [0.5, 0.5, 0, 0]; % 头部的y坐标
fill(head_x, head_y, 'g', 'EdgeColor', 'k', 'LineWidth', 1.5); % 填充头部

% 绘制蛇的眼睛
eye_x = [4*pi + 0.3, 4*pi + 0.35, 4*pi + 0.35, 4*pi + 0.3]; % 眼睛的x坐标
eye_y = [0.3, 0.3, 0.4, 0.4]; % 眼睛的y坐标
fill(eye_x, eye_y, 'w'); % 绘制眼睛的白色部分

% 绘制蛇的瞳孔
pupil_x = [4*pi + 0.32, 4*pi + 0.34, 4*pi + 0.34, 4*pi + 0.32]; % 瞳孔的x坐标
pupil_y = [0.32, 0.32, 0.37, 0.37]; % 瞳孔的y坐标
fill(pupil_x, pupil_y, 'k'); % 绘制瞳孔

% 绘制蛇的舌头
tongue_x = [4*pi + 0.5, 4*pi + 0.7, 4*pi + 0.5]; % 舌头的x坐标
tongue_y = [0, -0.5, -0.2]; % 舌头的y坐标
fill(tongue_x, tongue_y, 'r', 'EdgeColor', 'k', 'LineWidth', 1.5); % 绘制舌头

% 设置图形属性
axis equal;
xlim([-1 15]);
ylim([-2 2]);
title('Detailed Snake');
xlabel('X-axis');
ylabel('Y-axis');
grid on;
hold off;

运行结果

在这里插入图片描述

代码说明

  1. 身体细节:通过对 y 坐标进行更复杂的计算(sin(t) + 0.5 * sin(3*t)),使蛇的身体呈现更自然的波动。
  2. 眼睛:在蛇的头部增加了眼睛的绘制,使用白色填充表示眼睛的部分。
  3. 瞳孔:用黑色填充绘制了蛇的瞳孔,增强了细节。
  4. 舌头:用红色填充绘制了蛇的舌头,增加了动态感。

结果

运行以上代码后,你将看到一条更具细节的蛇,具有波动的身体、眼睛、瞳孔和舌头,整体效果更加生动。可以根据需要进一步调整颜色和形状。

如需帮助,或有导航、定位滤波相关的代码定制需求,请点击下方卡片联系作者


http://www.kler.cn/a/524696.html

相关文章:

  • 算法随笔_31:移动零
  • LeetCode热题100中 17. 20. 53. 78. 215.
  • 能说说MyBatis的工作原理吗?
  • 图像处理之HSV颜色空间
  • DeepSeek R1有什么不同
  • DeepSeek-R1 蒸馏模型及如何用 Ollama 在本地运行DeepSeek-R1
  • 【漫话机器学习系列】068.网格搜索(GridSearch)
  • pytorch逻辑回归实现垃圾邮件检测
  • 【综合决策模型】考虑生命周期评估LCA 与多目标优化MOO的综合决策模型MOOLCA
  • 3、C#基于.net framework的应用开发实战编程 - 实现(三、三) - 编程手把手系列文章...
  • Cesium ArcGisMapServerImageryProvider API 介绍
  • 【java学习笔记】@Autowired注解 使用方法和作用 | 配合@Component注解使用 | IOC控制反转
  • 最优化问题 - 内点法
  • JavaScript系列(50)--编译器实现详解
  • 【Go语言圣经】第五节:函数
  • Vue.js组件开发-如何实现异步组件
  • css中的animation
  • 2025年1月26日(超声波模块:上拉或下拉电阻)
  • 电商系统-用户认证(四)Oauth2授权模式和资源服务授权
  • C++ ——— 学习并使用 priority_queue 类
  • 工作总结:压测篇
  • 360大数据面试题及参考答案
  • WordPress使用(1)
  • 大数据技术笔记
  • OpenCV:开运算
  • FreeMarker框架的用法指南