惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Blog — PlanetScale
Blog — PlanetScale
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Vercel News
Vercel News
B
Blog
腾讯CDC
P
Proofpoint News Feed
Google DeepMind News
Google DeepMind News
N
Netflix TechBlog - Medium
L
LangChain Blog
F
Fortinet All Blogs
T
The Blog of Author Tim Ferriss
人人都是产品经理
人人都是产品经理
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
I
InfoQ
IT之家
IT之家
酷 壳 – CoolShell
酷 壳 – CoolShell
aimingoo的专栏
aimingoo的专栏
D
DataBreaches.Net
Stack Overflow Blog
Stack Overflow Blog
The Cloudflare Blog
Last Week in AI
Last Week in AI
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - 三生石上(FineUI控件)
T
Tailwind CSS Blog

博客园 - 彭成刚

localforage js数据存储 localStorage 替代,可大数据存储 indexdb数据库 文件系统有 happy-opfs "editor.cursorSurroundingLines": 3, 光标周围行数 设置光标在第几行的时候滚动页面滚动条 Prettier - Code formatter BUG 读不到 根目录的 .prettierrc.js prettier.configPath 格式化失效 vue2 mounted后面括号应该没有空格 _.flow 管道函数 lodash 同步函数列表很哇塞啊 _.flow(caozuo1, caozuo2, caozuo3)(my_data) vue2 iview 组件 ref 起名规则 应该用文件名 <shouye_book_left ref="shouye_book_left" /> iview 日期组件 BUG 赋值变量选年度 然后当前年会有个蓝色底, 解决方案 :key="ccValue" ⭐️⭐️⭐️ 自定义组件 表单验证 v-model 自动更新验证 trigger: 'change' 不触发,解决方案 加 <Input v-model="formData.abc" /> vue2 iview ComfyUiApi comfyui_xy 安装-使用 mergeLeft 左合并json函数 alt+k vscode 执行 ccdev - 在editor 和 terminal 之间切换 splitTwo 分割2个元素,主要分割文件名和id等 pi.dev 试试这个cli - deepseek-flash-v4 C盘清理空间软件 c盘没空间了 Wise Disk Cleaner kceve 鼠标2口控制器 kvm 鼠标同步器 穿屏幕 快捷键 是 s + * 操作列css每个按钮a后面加竖线.css operation_class .prettierrc.js 我发现 这个格式化的配置 默认就不建议放全局,都是跟项目走的 grid-gap 在 chrome58 支持,然后chrome58 不支持 gird的gap,不支持flex的gap iview table columns.js 表头 带* 带星 renderHeader alt+F9 设置 open in terminal 打开当前文件terminal vscode idea 都设置成这个快捷键 配合 ccdev使用 ccdev go开发 cli开发 读取本地模版复制到剪切板 where.exe node 查看命令位置 powershell 注意不是 where node (新建了一个ccwhere.bat) vue2 vModel 组件绑定数据写法 ccValue reloadenv 函数 `code $PROFILE` vscode在不关闭下刷新环境变量 volta 安装记录 node多版本控制 && @native-sdk OmniVoice 记录 我觉得音色还原还不错 voiceclone-env 记录 vscode pwsh 全选快捷键 ctrl+a (powershell) ai专属使用 aitree 命令 ai配合重要命令 powershell vscode code $PROFILE 备份,配合conda使用vscode $setHideObjProp 设置js json对象属性 隐藏变量 不可枚举,post的时候不带这个变量
三次贝塞尔曲线 一直想要一个 曲线箭头,先AI出个代码先存着。
彭成刚 · 2026-06-08 · via 博客园 - 彭成刚

三次贝塞尔曲线 一直想要一个 曲线箭头,先AI出个代码先存着。
虚线是带动画的

image

预览地址

https://www.qianwen.com/share?shareId=4c263835-e3a0-45a9-9a1f-8c57b72687c0&type=codePreview

html

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>双曲率柔和虚线箭头</title>
<style>
  body { 
    background: #1a1a1a; 
    display: flex; 
    justify-content: center; 
    align-items: center; 
    height: 100vh; 
    margin: 0; 
  }
  
  /* 虚线流动动画 */
  .flow-line {
    fill: none;
    stroke: #00e5ff;
    stroke-width: 3;
    /* 定义虚线:每段线长10px,间隔5px */
    stroke-dasharray: 10 5; 
    animation: flow 1s linear infinite;
  }

  @keyframes flow {
    from { stroke-dashoffset: 15; } /* 10 + 5 = 15,虚线向后推 */
    to { stroke-dashoffset: 0; }    /* 移动到0,产生向前流动的视觉效果 */
  }

  /* 箭头样式 */
  .arrow-head {
    fill: #00e5ff;
  }
</style>
</head>
<body>

<svg width="500" height="300" viewBox="0 0 500 300">
  <!-- 1. 绘制三次贝塞尔曲线 -->
  <path class="flow-line" d="M 50 250 C 250 250, 250 50, 450 50" />
  
  <!-- 2. 在终点绘制箭头 -->
  <polygon class="arrow-head" points="-12,-6 0,0 -12,6" transform="translate(450, 50) rotate(45)" />
</svg>

<script>
  // 已知坐标
  const x1 = 50, y1 = 250;
  const x2 = 450, y2 = 50;
  
  // 三次贝塞尔曲线的两个控制点
  // 策略:让控制点1的Y等于起点Y,控制点2的Y等于终点Y,实现两端平缓过渡
  const cx1 = 250, cy1 = 250; 
  const cx2 = 250, cy2 = 50;  

  // 计算曲线在终点 (t=1) 的切线角度
  // 三次贝塞尔曲线终点切线方向向量 = (终点 - 第二个控制点)
  const dx = x2 - cx2;
  const dy = y2 - cy2;
  
  // 将弧度转换为角度
  const angle = Math.atan2(dy, dx) * 180 / Math.PI;

  // 获取箭头元素并应用旋转
  const arrow = document.querySelector('.arrow-head');
  // translate 移动到终点,rotate 围绕箭头自身原点旋转
  arrow.setAttribute('transform', `translate(${x2}, ${y2}) rotate(${angle})`);
</script>

</body>
</html>

ai的提示词

我想用 html css 制作一个箭头,已知 x1y1 和 x2y2 然后两点之间是曲线 然后最好曲线是虚线 还有虚线的位移动画,方向是 从x1y1 到 x2y2 然后箭头在x2y2 的位置上
曲线要双曲线,就是两头的曲率是相反的,看起来很柔和的

perfect-arrows

这个库 就是专门做箭头的,输入开始和结束的坐标 就能计算出所有的路径
https://www.npmjs.com/package/perfect-arrows

image