beziershape-fill:在寻找交点测试的根时出现问题。
创始人
2024-12-01 02:00:37
0

在进行交点测试时,首先需要检查贝塞尔曲线的方程是否正确,然后使用牛顿法求根。下面是一个示例代码:

function findIntersection(bez, seg) { // ensure curve is defined correctly if (bez.length !== 4) return null;

// solve for t values using newton's method var roots = []; var p = bez[0], c1 = bez[1], c2 = bez[2], q = bez[3]; var A = 3 * (c1 - p), B = 6 * (c2 - c1) - 3 * A, C = 3 * (p - 2 * c1 + c2); var D = -seg[0] * A - seg[1] * B - seg[2] * C; var E = seg[0] * (3 * A * seg[0] + 2 * B * seg[1] + C * seg[2]) + seg[1] * (2 * A * seg[1] + C * seg[2]) + seg[2] * A * seg[2]; var delta = E * E - 4 * D * A * seg[2]; if (delta < 0) return null; if (delta === 0) { var t = -E / (2 * A * seg[2]); if (t >= 0 && t <= 1) { roots.push(t); } } else { var t1 = (-E + Math.sqrt(delta)) / (2 * A * seg[2]); var t2 = (-E - Math.sqrt(delta)) / (2 * A * seg[2]); if (t1 >= 0 && t1 <= 1) { roots.push(t1); } if (t2 >= 0 && t2 <= 1) { roots.push(t2); } }

return roots; }

相关内容

热门资讯

保存时出现了1个错误,导致这篇... 当保存文章时出现错误时,可以通过以下步骤解决问题:查看错误信息:查看错误提示信息可以帮助我们了解具体...
汇川伺服电机位置控制模式参数配... 1. 基本控制参数设置 1)设置位置控制模式   2)绝对值位置线性模...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
表格中数据未显示 当表格中的数据未显示时,可能是由于以下几个原因导致的:HTML代码问题:检查表格的HTML代码是否正...
本地主机上的图像未显示 问题描述:在本地主机上显示图像时,图像未能正常显示。解决方法:以下是一些可能的解决方法,具体取决于问...
表格列调整大小出现问题 问题描述:表格列调整大小出现问题,无法正常调整列宽。解决方法:检查表格的布局方式是否正确。确保表格使...
不一致的条件格式 要解决不一致的条件格式问题,可以按照以下步骤进行:确定条件格式的规则:首先,需要明确条件格式的规则是...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...