开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 312|回复: 6
收起左侧

[易语言纯源码] 画板爱心绘制 类似笛卡尔爱心曲线函数

[复制链接]
结帖率:0% (0/1)
发表于 昨天 14:24 | 显示全部楼层 |阅读模式   河南省新乡市
分享源码
界面截图:
是否带模块: 纯源码
备注说明: -
易语言玩了好几年了 最初我玩易语言的时候 看着抖音上的2d爱心 老想去装一装 后来发现一直没有类似的绘制 而且更多的2d绘制都唐的没边了 这两天闲的无聊 刚好想检验一下技术 就随便翻了翻一个网上的爱心函数 直接拿来调用就可以直接画出来  不得不说 易语言对比起来python  还是比较方便的




画板爱心.e

36.2 KB, 下载次数: 5, 下载积分: 精币 -2 枚

写的一般 大佬勿喷

评分

参与人数 1精币 +1 收起 理由
malin158 + 1 感谢分享,很给力!~

查看全部评分


结帖率:100% (3/3)

签到天数: 5 天

发表于 昨天 22:59 | 显示全部楼层   重庆市重庆市
[Erlang] 纯文本查看 复制代码
.版本 2

.子程序 画爱心
.参数 目标画板, 画板
.局部变量 t_整数, 整数型
.局部变量 t_浮点, 双精度小数型
.局部变量 x_笛卡尔, 双精度小数型
.局部变量 y_笛卡尔, 双精度小数型
.局部变量 缩放比例, 双精度小数型
.局部变量 中心X, 整数型
.局部变量 中心Y, 整数型
.局部变量 屏幕X, 整数型
.局部变量 屏幕Y, 整数型
.局部变量 循环上限, 整数型
.局部变量 点数组, 整数型, , "0"
.局部变量 点索引, 整数型

' 清空画板并设置背景色
目标画板.画板背景色 = #白色  ' 设置一个浅色背景
目标画板.清除 (, , , )

' 设置画笔和刷子(用于填充)
目标画板.画笔颜色 = #红色  ' 轮廓颜色
目标画板.画笔粗细 = 2  ' 轮廓粗细
目标画板.刷子颜色 = #品红  ' 填充颜色,选择一个粉色系
目标画板.刷子类型 = 5  ' 确保是实心填充

' 计算画板中心点
中心X = 目标画板.宽度 ÷ 2
中心Y = 目标画板.高度 ÷ 2

' 调整缩放比例,使爱心能完整显示在画板中
' 笛卡尔心形线参数方程的输出范围大致是 X: [-16, 16], Y: [-13, 5] (根据系数)
' 实际绘制时,为了美观,可能需要进一步调整缩放因子
缩放比例 = 目标画板.取用户区宽度 () ÷ 35  ' 假设爱心宽度为32个单位 (16*2),留边距
.如果 (目标画板.取用户区高度 () ÷ 20 < 缩放比例)  ' 假设爱心高度为18个单位 (13+5),留边距
    缩放比例 = 目标画板.取用户区高度 () ÷ 20
.否则

.如果结束
缩放比例 = 缩放比例 × 0.9  ' 留一些边距,并微调

' 循环绘制爱心曲线,并收集点
' t 的范围通常是 0 到 2 * PI (约 6.28)
' 我们将 0 到 2 * PI 映射到一个较大的整数范围,例如 0 到 6280
' 这样每增加 1 个整数步长,浮点数 t 就增加 0.001
循环上限 = 取整 (#pi × 2 × 2000)  ' 增加循环上限,使曲线更平滑 (步长 0.0005)
点索引 = 1  ' 数组索引从1开始

.变量循环首 (0, 循环上限, 1, t_整数)
    ' 将整数型循环变量转换为浮点数 t
    t_浮点 = 到小数 (t_整数) ÷ 2000  ' 对应循环上限的步长

    ' 计算笛卡尔坐标系的 x, y
    x_笛卡尔 = 16 × 求次方 (求正弦 (t_浮点), 3)
    y_笛卡尔 = 13 × 求余弦 (t_浮点) - 5 × 求余弦 (2 × t_浮点) - 2 × 求余弦 (3 × t_浮点) - 求余弦 (4 × t_浮点)

    ' 转换为屏幕坐标系并进行缩放和平移
    ' 注意:易语言Y轴向下,所以y需要反向
    屏幕X = 取整 (中心X + x_笛卡尔 × 缩放比例)
    屏幕Y = 取整 (中心Y - y_笛卡尔 × 缩放比例)

    ' 将点添加到数组
    重定义数组 (点数组, 真, 点索引, 2)  ' 动态增加数组大小
    点数组 [点索引] [1] = 屏幕X
    点数组 [点索引] [2] = 屏幕Y
    点索引 = 点索引 + 1
.变量循环尾 ()

' 绘制并填充多边形
目标画板.画多边形 (点数组, 取数组成员数 (点数组))  ' 传入点数组和点数目

目标画板.刷新显示 ()  ' 刷新画板显示
回复 支持 反对

使用道具 举报

签到天数: 13 天

发表于 昨天 21:38 | 显示全部楼层   江苏省连云港市
感谢分享
回复 支持 反对

使用道具 举报

签到天数: 12 天

发表于 昨天 20:26 | 显示全部楼层   广东省惠州市
楼主辛苦了
回复 支持 反对

使用道具 举报

签到天数: 16 天

发表于 昨天 16:53 | 显示全部楼层   河北省石家庄市
感谢分享
回复 支持 反对

使用道具 举报

结帖率:100% (12/12)

签到天数: 27 天

发表于 昨天 14:57 | 显示全部楼层   辽宁省丹东市
感谢分享,很给力!~
回复 支持 反对

使用道具 举报

签到天数: 4 天

发表于 昨天 14:45 高大上手机用户 | 显示全部楼层   河北省石家庄市
画的很好。。。。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表