花潮论坛

搜索
热搜: 活动 交友 discuz
查看: 27|回复: 14

使用svgdr动态绘制图案

[复制链接]
  • TA的每日心情
    奋斗
    2026-6-14 12:36
  • 签到天数: 1845 天

    [LV.Master]伴坛终老

    3254

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

    发表于 2026-6-14 20:04 | 显示全部楼层 |阅读模式

    请马上登录,朋友们都在花潮里等着你哦:)

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x
    <style>
    	#msvg {
    		display: block;
    		margin: auto;
    		border: 1px solid gray;
    		polygon {
    			stroke-dasharray: var(--len);
    			stroke-dashoffset: var(--len);
    			animation: draw 6s linear forwards;
    		}
    	}
    	@keyframes draw { to { stroke-dashoffset: 0; } }
    </style>
    
    <svg id="msvg" width="600" height="600" viewBox="-200 -200 400 400"></svg>
    
    <script type="module">
    	import Dr from 'https://638183.freep.cn/638183/svgdr/svgdr.mod.min.js';
    	var dr = Dr.dr(msvg);
    
    	var points = dr.sun(35, 200, 190);
    	dr.polygon(points, 'none', 'red', 1).set('fill-rule', 'evenodd');
    	var len = dr.elm.getTotalLength();
    	dr.elm.style.setProperty('--len', len);
    	dr.elm.onanimationend = () => dr.elm.setAttribute('fill', 'pink');
    </script>
    

    评分

    参与人数 3威望 +130 金钱 +260 经验 +130 收起 理由
    小辣椒 + 50 + 100 + 50 匠心独运,细节精致入微!
    红影 + 50 + 100 + 50 匠心独运,细节精致入微!
    杨帆 + 30 + 60 + 30 匠心独运,细节精致入微!

    查看全部评分

  • TA的每日心情
    奋斗
    2026-6-14 12:36
  • 签到天数: 1845 天

    [LV.Master]伴坛终老

    3254

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2026-6-14 20:13 | 显示全部楼层
    一楼,绘制的是太阳花。步骤:

    (一)获取太阳花点数据(代码 21 行);
    (二)绘制多边形图案(代码 22 行),使用的 points 是上一步的数据(sun方法);
    (三)获取图案描边总长度(代码 23 行);
    (四) 将上一步拿到的多边形描边总长度赋值给对应标签在CSS中所设置的变量 --len (代码 24 行);
    (五)监听多边形CSS动画执行完毕,给多边形填充颜色(代码 25 行)。

    【注】svgdr 绘制图形时返回该图形对象,例如,22 行绘制一个多边形,它返回的就是多边形标签对象即 polygon,用 dr.elm 表示,基于 dr.elm 紧挨着的后续操作都指向它,直至绘制新的图像。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2026-6-14 12:36
  • 签到天数: 1845 天

    [LV.Master]伴坛终老

    3254

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2026-6-14 20:16 | 显示全部楼层
    dr.sun 方法参数说明:

    dr.sun(num, R, r);

    num,花瓣数;
    R: 太阳花从圆心到外部边界的半径(一般取值为长宽的一般,太阳花绘制在长宽一致的画布上);
    r: 太阳花绘制半径
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2026-6-14 10:42
  • 签到天数: 565 天

    [LV.9]以坛为家II

    375

    主题

    4355

    回帖

    2万

    积分

    版主

    Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生鹰傲苍穹飞龙在天王者至尊大将风范花潮版主

    发表于 2026-6-14 20:36 | 显示全部楼层
    好漂亮,真神奇,大手笔,使用svgdr竟然可以动态绘制图案
    ★青春是一个人的精神生命,奋斗是一个人最大的体面,学习是一个人最美的姿态。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2026-6-14 10:42
  • 签到天数: 565 天

    [LV.9]以坛为家II

    375

    主题

    4355

    回帖

    2万

    积分

    版主

    Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生鹰傲苍穹飞龙在天王者至尊大将风范花潮版主

    发表于 2026-6-14 20:47 | 显示全部楼层
    马黑黑 发表于 2026-6-14 20:16
    dr.sun 方法参数说明:

    dr.sun(num, R, r);


    好听的名字——dr.sun 方法,有原生的sun 方法吗?
    ★青春是一个人的精神生命,奋斗是一个人最大的体面,学习是一个人最美的姿态。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2026-6-14 10:42
  • 签到天数: 565 天

    [LV.9]以坛为家II

    375

    主题

    4355

    回帖

    2万

    积分

    版主

    Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生鹰傲苍穹飞龙在天王者至尊大将风范花潮版主

    发表于 2026-6-14 20:53 | 显示全部楼层
    本帖最后由 杨帆 于 2026-6-14 20:58 编辑
    马黑黑 发表于 2026-6-14 20:16
    dr.sun 方法参数说明:

    dr.sun(num, R, r);

    好像R决定太阳花位置,r决定太阳花大小,对吗?
    ★青春是一个人的精神生命,奋斗是一个人最大的体面,学习是一个人最美的姿态。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-12-1 20:32
  • 签到天数: 1052 天

    [LV.10]以坛为家III

    1898

    主题

    33万

    回帖

    40万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮美女虎龙狗猪多彩人生星月交辉海样胸怀火热情怀优雅迷人神秘浪漫缤纷心情草莓情怀蝴蝶情怀心曲飞扬星星情怀七彩绚丽活泼开朗女儿情怀相遇之美一往情深花好月圆心香一瓣紫色情节飞龙在天金剪刀天籁妙音妙笔生花风雨同行我心永远天长地久幸福快乐绚丽缤纷喜乐安康中秋征文周年庆指尖上的流年舞会之星分析(喊冤)章总结章杀人王小强章最佳杀刺临屏写诗七夕诗钟活动第五届风云第六届风云情人节花潮管理

    发表于 2026-6-14 20:53 | 显示全部楼层
    这个动态还要会用 svgdr 绘制图案才行呢
     
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-12-1 20:32
  • 签到天数: 1052 天

    [LV.10]以坛为家III

    1898

    主题

    33万

    回帖

    40万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮美女虎龙狗猪多彩人生星月交辉海样胸怀火热情怀优雅迷人神秘浪漫缤纷心情草莓情怀蝴蝶情怀心曲飞扬星星情怀七彩绚丽活泼开朗女儿情怀相遇之美一往情深花好月圆心香一瓣紫色情节飞龙在天金剪刀天籁妙音妙笔生花风雨同行我心永远天长地久幸福快乐绚丽缤纷喜乐安康中秋征文周年庆指尖上的流年舞会之星分析(喊冤)章总结章杀人王小强章最佳杀刺临屏写诗七夕诗钟活动第五届风云第六届风云情人节花潮管理

    发表于 2026-6-14 20:53 | 显示全部楼层
    感谢黑黑的详细讲解,学习了
     
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2026-6-14 12:36
  • 签到天数: 1845 天

    [LV.Master]伴坛终老

    3254

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2026-6-14 21:11 | 显示全部楼层
    红影 发表于 2026-6-14 20:53
    这个动态还要会用 svgdr 绘制图案才行呢

    这个是必须的。不过道理相同
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2026-6-14 12:36
  • 签到天数: 1845 天

    [LV.Master]伴坛终老

    3254

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2026-6-14 21:13 | 显示全部楼层
    杨帆 发表于 2026-6-14 20:53
    好像R决定太阳花位置,r决定太阳花大小,对吗?

    可以这么理解。此外,R 应考虑的是 viewBox 中的宽高(宽高应一致),是它的一半最好
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2026-6-14 12:36
  • 签到天数: 1845 天

    [LV.Master]伴坛终老

    3254

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2026-6-14 21:15 | 显示全部楼层
    杨帆 发表于 2026-6-14 20:47
    好听的名字——dr.sun 方法,有原生的sun 方法吗?

    没有原生的方法。网上找到的太阳花的点坐标位置,都基于偶数花瓣。我这个是原创的方法。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2026-6-14 12:36
  • 签到天数: 1845 天

    [LV.Master]伴坛终老

    3254

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2026-6-14 21:15 | 显示全部楼层
    红影 发表于 2026-6-14 20:53
    感谢黑黑的详细讲解,学习了

    阔气了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-11-25 21:11
  • 签到天数: 1 天

    [LV.1]初来乍到

    1520

    主题

    6万

    回帖

    13万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮美女鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫缤纷心情草莓情怀青草情怀蝴蝶情怀心曲飞扬星星情怀七彩绚丽活泼开朗女儿情怀男儿情怀鹰傲苍穹心香一瓣音画大师天籁妙音风雨同行我心永远喜乐安康中秋征文指尖上的流年花潮管理

    发表于 2026-6-14 21:37 | 显示全部楼层
    速度这么快,秒做出来一个完美的效果
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2026-6-12 08:15
  • 签到天数: 193 天

    [LV.7]常住居民III

    330

    主题

    3528

    回帖

    2万

    积分

    版主

    Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

    花潮美女鼠牛虎兔龙蛇马羊猴鸡狗猪七彩绚丽金剪刀开朗大方花潮版主

    发表于 2026-6-14 21:39 | 显示全部楼层

                                   
    登录/注册后可看大图

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2026-6-14 10:42
  • 签到天数: 565 天

    [LV.9]以坛为家II

    375

    主题

    4355

    回帖

    2万

    积分

    版主

    Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生鹰傲苍穹飞龙在天王者至尊大将风范花潮版主

    发表于 2026-6-14 22:18 | 显示全部楼层
    马黑黑 发表于 2026-6-14 21:15
    没有原生的方法。网上找到的太阳花的点坐标位置,都基于偶数花瓣。我这个是原创的方法。

    好厉害了!为马老师点赞
    ★青春是一个人的精神生命,奋斗是一个人最大的体面,学习是一个人最美的姿态。
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    小黑屋|手机版|Archiver|服务支持:DZ动力|huachaowang.com Inc. ( 蜀ICP备17032287号-1 )

    GMT+8, 2026-6-14 22:47 , Processed in 0.071238 second(s), 26 queries .

    Powered by Discuz! X3.4

    © 2001-2013 Comsenz Inc.

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