相关疑难解决方法(0)

确定两个日期范围是否重叠

给定两个日期范围,确定两个日期范围是否重叠的最简单或最有效的方法是什么?

举个例子,假设我们有通过日期时间变量表示的范围StartDate1EndDate1 StartDate2EndDate2.

language-agnostic math datetime

1180
推荐指数
16
解决办法
38万
查看次数

检测两个矩形交叉的算法?

我正在寻找一种算法来检测两个矩形是否相交(一个是任意角度,另一个只有垂直/水平线).

测试一个角落是否在另一个ALMOST中.如果矩形形成十字形状,则失败.

避免使用线条的斜率似乎是一个好主意,这需要垂直线条的特殊情况.

algorithm math graphics geometry separating-axis-theorem

140
推荐指数
2
解决办法
9万
查看次数

两个矩形交叉点

我有两个矩形,每个矩形有4个值:

左侧位置X,顶部位置Y,宽度W和高度H:

X1, Y1, H1, W1
X2, Y2, H2, W2
Run Code Online (Sandbox Code Playgroud)

矩形不会旋转,如下所示:

+--------------------> X axis
|
|    (X,Y)      (X+W, Y)
|    +--------------+
|    |              |
|    |              |
|    |              |
|    +--------------+
v    (X, Y+H)     (X+W,Y+H)

Y axis
Run Code Online (Sandbox Code Playgroud)

确定两个矩形的交点是否为空的最佳解决方案是什么?

algorithm math pseudocode shapes

53
推荐指数
2
解决办法
6万
查看次数

使坐标被吸引/排斥到某些其他坐标

我正在生成一些像这样的svg图像:

<svg version="1.1" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
  <style type="text/css">
    text {
      font-family: Helvetica;
      font-size: 60px;
      paint-order: stroke;
      stroke: #000000;
      stroke-width: 6px;
      stroke-linecap: butt;
      stroke-linejoin: miter;
      font-weight: 800;
    }
  </style>
  <g stroke="lightgray" stroke-dasharray="1,1" stroke-width="1" transform="scale(4, 4)">
    <line x1="0" y1="0" x2="256" y2="256"/>
    <line x1="256" y1="0" x2="0" y2="256"/>
    <line x1="128" y1="0" x2="128" y2="256"/>
    <line x1="0" y1="128" x2="256" y2="128"/>
  </g>
  <g transform="scale(1, -1) translate(0, -900)">
    <path d="M 128 445 Q 222 525 301 653 Q 319 685 334 709 L 343 725 Q …
Run Code Online (Sandbox Code Playgroud)

javascript algorithm coordinates force-based-algorithm node.js

19
推荐指数
2
解决办法
401
查看次数

检测矩形和多边形之间交叉的方法?

检测红色矩形是否与黑色多边形重叠的最佳方法是什么?请参考此图片:

红色矩形和黑色多边形

algorithm math collision-detection

8
推荐指数
2
解决办法
6749
查看次数

当兄弟元素重叠时有效检测

例:

<div id="big">&nbsp;</div>
<div class="small">&nbsp;</div>
<div class="small">&nbsp;</div>
<div class="small">&nbsp;</div>
<div class="small">&nbsp;</div>
<div class="small">&nbsp;</div>
<!-- ...and so on -->
Run Code Online (Sandbox Code Playgroud)

"#big"绝对位于".small"的一部分后面,但不是父元素.

我一直这样做:

           var smallArray = [];

           var $big = $('#big');
           var $bigPos = $big.offset();

           $('div.small').each(function() {
                    var $this = $(this);
                    var $thisPos = $this.offset();

                    if(
                            $thisPos.left >= $bigPos.left &&
                            $thisPos.left <= $bigPos.left+$big.outerWidth() &&
                            $thisPos.top >= $bigPos.top &&
                            $thisPos.top <= $bigPos.top+$big.outerHeight()
                    ) smallArray.push($this);
            });
Run Code Online (Sandbox Code Playgroud)

......但这似乎很糟糕.我是否错过了一些jQuery或vanilla JavaScript的方法,这些方法可以让我以更优雅高效的方式做到这一点?

非常感谢您提供的任何帮助.

jquery siblings

7
推荐指数
1
解决办法
8957
查看次数

如何查看两个矩形在JavaScript或伪代码中是否相交?

我有两个矩形,我必须在函数中返回它们是否相交.

它们由[ x0, y0, x1, y1 ]表示矩形的左上角和右下角的对表示.或者,您的解决方案可能是[ x0, y0, width, height ]如果它在某种程度上更简单,我可以通过它调整我的函数的参数输入.

我试图看看矩形A中的两个角中是否有任何一个包含在矩形B中,但如果A大于B且B部分包含在A中,则表示它不重叠.现在我可以尝试A和B,但这似乎是一种糟糕的做事方式.

我不能预制一个大网格并占据矩形的矩形,因为不知道矩形是什么.我只能说它们是无符号整数,最小值为0且未知最大值.

javascript geometry rectangles

7
推荐指数
3
解决办法
7844
查看次数

MySQL查询某些日期范围

我有以下表格数据:

Table: Seasons                
id   from        to
---------------------------
1    2013-08-30  2013-09-04
2    2013-09-05  2013-09-08
3    2013-09-09  2013-09-20
Run Code Online (Sandbox Code Playgroud)

我需要运行一个查询,它返回特定日期范围内的所有记录,例如:返回受影响的所有记录 2013-09-04 to 2013-09-05

它会是这样的

date  range:                    | 09-04 - 09-05| 
seasons:          08-30 - 09-04 | 09-05 - 09-08     | 09-09 - 09-20
Run Code Online (Sandbox Code Playgroud)

所以它应该返回前2个记录.我已尝试使用BETWEEN进行查询,但它接缝我需要构建几个案例 - 还是有更简单的方法?thankx

mysql date

7
推荐指数
3
解决办法
2万
查看次数

二维方形到矩形碰撞检测和动作(物理)

所以我用这种方式来检测方块移动和接触其他方块并做出反应。它使用勾股定理来生成第三个参数,因此当方块接触时您不会得到两个 true if 语句。我最近一直试图在正方形到长方形上使用这种方法,但似乎无法使其正常工作。我画了几条线来帮助可视化代码在做什么。有人对如何使这种碰撞正常工作有任何建议吗?

const canvas = document.getElementById('canvas');
const context = canvas.getContext('2d');

canvas.width = window.innerWidth;
canvas.height = window.innerHeight;

let gravity = 1.5;
let friction = 0.9;

//CHARACTER:
class Player {
    constructor(x, y, w, h, vx, vy, c, j) {
        this.x = x;
        this.y = y;
        this.w = w;
        this.h = h;
        this.vx = vx;
        this.vy = vy;
        this.color = c;
        this.jumping = j;
    }
    draw() {
      context.fillStyle = this.color;
      context.fillRect(this.x, this.y, this.w, this.h);
    }
    canvasCollision() {
        if (this.x <= 0) …
Run Code Online (Sandbox Code Playgroud)

javascript collision

7
推荐指数
1
解决办法
160
查看次数

重叠的立方体

我正在尝试确定两个立方体是否重叠.我已经阅读了重叠的矩形,但我不确定如何将其转换为第三维.

我的目标是生成一些随机定位和大小不重叠的立方体.

这些立方体在ax,y,z笛卡尔平面上表示.

geometry

6
推荐指数
2
解决办法
6817
查看次数