javascript - 如何使用kevlindev的intersectPolygonRectangle
问题描述
我在理解 kevlindev 的 intersectPolygonRectangle 函数使用哪些参数时遇到了一些麻烦:http: //www.kevlindev.com/gui/math/intersection/index.htm#Anchor-intersectPolygonRectangl-23720
更准确地说,关于 svg rect , r1 和 r2 代表什么?
Intersection.intersectPolygonRectangle = function(points, r1, r2) {
var min = r1.min(r2);
var max = r1.max(r2);
var topRight = new Point2D( max.x, min.y );
var bottomLeft = new Point2D( min.x, max.y );
var inter1 = Intersection.intersectLinePolygon(min, topRight, points);
var inter2 = Intersection.intersectLinePolygon(topRight, max, points);
var inter3 = Intersection.intersectLinePolygon(max, bottomLeft, points);
var inter4 = Intersection.intersectLinePolygon(bottomLeft, min, points);
var result = new Intersection("No Intersection");
result.appendPoints(inter1.points);
result.appendPoints(inter2.points);
result.appendPoints(inter3.points);
result.appendPoints(inter4.points);
if ( result.points.length > 0 )
result.status = "Intersection";
return result;
};
我知道一个矩形由 2 个点(左上角和右下角)定义,那么我应该为 r1 和 r2 使用哪些值?
虽然我设法使用了 intersectCircleRectangle 和 intersectCirclePolygon 等其他函数,但我在网上找不到 intersectPolygonRectangle 的任何工作示例......
提前致谢。
解决方案
SVG 矩形由x
、y
、width
和描述height
。Wherex
和y
是矩形的左上角。
看起来您提供矩形的哪两个点并不重要,只要它们是对角线即可。代码整理出右上角和左下角坐标是什么。
所以以下应该工作:
r1 = new Point2D(<rect X>, <rect Y>);
r2 = new Point2D(<rect X> + rect WIDTH>, <rect Y> + <rect HEIGHT>);
推荐阅读
- python - 为 DataFrame 的每个部分/切片计算单独的平均值
- c - 带有 beaglebone 黑色无线的 Adafruit 终极 gps 分线模块 - UART 问题
- r - 替换 FASTA 文件中的核苷酸
- android - 在android应用程序中加载音频文件
- node.js - Angular 中的动态表仅将更改的数据发送到 API
- javascript - OAuth2 弹出窗口
- mysql - WSL 连接到 Windows 上的 MySQL Server 8 不起作用
- css - 带有溢出滚动和最大高度的 CSS 高度自动
- reactjs - 为什么我的文本输入不允许我更改其中的值?
- vbscript - VBScript 获取临时文件夹