cocoscreator 三角形外画圆
在Cocos Creator中,我们可以使用Graphics组件来绘制图形。要绘制一个圆,可以使用以下代码:
let graphics = node.getComponent(cc.Graphics);
graphics.circle(center.x, center.y, radius);
graphics.stroke();
其中,center是圆心的坐标,radius是半径的长度,stroke()用于绘制图形的轮廓线。
如果要在三角形外画圆,可以先计算出三角形的外接圆的圆心和半径,然后再使用上述代码来绘制圆。计算外接圆的圆心和半径的代码如下:
let a = cc.v2(x1, y1); // 三角形的三个顶点
let b = cc.v2(x2, y2);
let c = cc.v2(x3, y3);
let ab = b.sub(a); // 两个向量
let ac = c.sub(a);
let abPerp = cc.v2(-ab.y, ab.x); // ab的法向量
let acPerp = cc.v2(-ac.y, ac.x); // ac的法向量
let abMid = a.add(b).mul(0.5); // ab的中点
let acMid = a.add(c).mul(0.5); // ac的中点
let center = intersection(abMid, abPerp, acMid, acPerp); // 交点就是圆心
let radius = center.sub(a).mag(); // 圆心到任意一个顶点的距离就是半径
function intersection(p1, v1, p2, v2) {
let t = v2.cross(p1.sub(p2)) / v1.cross(v2);
return p1.add(v1.mul(t));
}
其中,intersection()函数用于计算两条直线的交点。
原文地址: https://www.cveoy.top/t/topic/Bxb 著作权归作者所有。请勿转载和采集!