根据两点坐标和半径返回圆点坐标
GetCircleCenter(x1,y1,x2,y2,r){ let c1 = (x2 * x2 - x1 * x1 + y2 * y2 - y1 * y1) / (2 * (x2 - x1)); let c2 = (y2 - y1) / (x2 - x1); let A = c2 * c2 + 1; let B = (2 * x1 * c2 - 2 * c1 * c2 - 2 * y1); let C = x1 * x1 - 2 * x1 * c1 + c1 * c1 + y1 * y1 - r * r; //圆心坐标1 let r_y = (-B + Math.sqrt(B * B - 4 * A * C)) / 2 / A; let r_x = c1 - c2 * r_y; //圆心坐标2 // let r_y = (-B - Math.sqrt(B * B - 4 * A * C)) / 2 / A; // let r_x = c1 - c2 * r_y; return [r_x, r_y] },
//根据圆心半径和两点坐标绘制圆弧 // 已知圆心坐标和半径 const centerX = 36; const centerY = 493;
const x1=100;
const y1=200;
const x2=300;
const y2=350; const radius = 300; // 计算向量差 const dx1 = x1- centerX; const dy1 = y1- centerY; const dx2 = x2- centerX; const dy2 = y2- centerY; // 计算起始角度和结束角度 const sAngle = Math.atan2(dy1, dx1); const eAngle = Math.atan2(dy2, dx2); // 绘制圆弧 context.arc(centerX, centerY, radius, sAngle, eAngle); // 将圆弧描边绘制出来 context.stroke();
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具