标签: rectangles

使用XNA在游戏窗口中显示矩形

我想将我的游戏网格划分为一个矩形阵列.每个矩形为40x40,每列有14个矩形,总共25列.这涵盖了560x1000的游戏区域.

这是我设置的代码,用于在游戏网格上创建第一列矩形:

Rectangle[] gameTiles = new Rectangle[15];

for (int i = 0; i <= 15; i++)
{
    gameTiles[i] = new Rectangle(0, i * 40, 40, 40);
}
Run Code Online (Sandbox Code Playgroud)

我很确定这是有效的,但当然我无法确认它,因为矩形不会在屏幕上呈现让我亲眼看到它们.我想为调试目的做的是渲染边框,或用颜色填充矩形,这样我就可以在游戏本身上看到它,只是为了确保它有效.

有没有办法让这种情况发生?或者任何相对简单的方法我可以确保这个有效吗?

非常感谢你.

c# grid xna rectangles

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

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

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

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

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

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

javascript geometry rectangles

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

Rectangle类函数getX(),getY()等以双精度返回

根据我的经验和Oracle Java API文档,我知道他们这样做了,但我想知道为什么.通过构造函数,我只允许将int类型参数传递给Rectangle类,x,y等的内部数据表示属于类型int,并且setSize()只排除类型的参数int.但是,为什么像所有的方法getX(),getY(),getWidth()等返回双时不能有任何的精度?为什么不像int预期的那样简单?

编辑:我确实理解它是从Rectangle2D类派生的,但是仍然没有理由只是不提供任何int基础getX()getY()函数,因为与PointPoint2D类不同,这些方法不是抽象的.另外setLocation()是不是抽象的要么.

java rectangles

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

合并重叠的轴对齐矩形

我有一组轴对齐的矩形.当两个矩形重叠(部分或完全)时,它们将合并到它们的公共边界框中.此过程以递归方式工作.

检测所有的重叠和使用工会发现,形成组,您合并,最终将无法工作,因为两个矩形的合并覆盖更大面积,可以创造新的重叠.(在下图中,合并了两个重叠的矩形后,会出现新的重叠.)

在此输入图像描述

在我的情况下,矩形的数量是中等的(比如N <100),可以使用强力解决方案(尝试所有对,如果发现重叠,则从头开始合并并重新启动).无论如何,我想降低复杂性,在最坏的情况下可能是O(N³).

有什么建议如何改善这个?

algorithm rectangles computational-geometry

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

获取旋转矩形的角

我有一个围绕它的中间旋转的矩形,我有另一个矩形,我想连接到旋转矩形的右上角.问题是我不知道如何到达角落,以便第二个矩形总是会粘在那个角落.

这是我的示例代码.现在第二个矩形将始终在同一个地方,这不是我追求的结果.

package Test;

import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
import javax.swing.*;

class Test{

    public static void main(String[] args){
        new Test();
    }

    public Test(){
        EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {
                JFrame frame = new JFrame("Test");
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.setLayout(new BorderLayout());
                frame.add(new Graphic());
                frame.setSize(1000,700);
                frame.setLocationRelativeTo(null);
                frame.setVisible(true);
            }
        });
    }
}

class Graphic extends JPanel{
    private int x, y, windowW, windowH;
    private double angle;
    private Rectangle rect1, rect2;
    private Path2D path;
    private Timer timer;
    private AffineTransform rotation;

    public Graphic(){
        windowW = (int) …
Run Code Online (Sandbox Code Playgroud)

java awt shape rotation rectangles

6
推荐指数
1
解决办法
1548
查看次数

如何将透明矩形添加到R boxplot(plot)?

我有一个简单的箱形图用于我的数据使用R ..

boxplot (Error~Code, DataFrame1, xlim = c(0, 27),
     xlab="set Code",ylab="Error", boxwex=0.75, cex.axis=0.3)
Run Code Online (Sandbox Code Playgroud)

我想在2个定义的y值之间绘制一个透明的矩形:( - 50)和(100)!

我在上一个脚本之后尝试使用函数rect,如下所示:

  rect(0,-50,27,100, col= 'tomato2', density=10)
Run Code Online (Sandbox Code Playgroud)

但这并没有给我一个透明的均匀彩色矩形!

有人可以帮助我吗?到目前为止,我差不多花了2个多小时没有成功.

提前谢谢了!

plot r transparent rectangles boxplot

6
推荐指数
1
解决办法
9654
查看次数

如何找到矩形周长中最近的点到给定点?

这是一个与语言无关的问题.给定矩形的尺寸l,t,w,h(左,顶部,宽度,高度)和一个点x,y,如何找到矩形周长上的最近点到该点?

我试图在Lua中解决它,但任何其他语言都可以.到目前为止,这是我的最大努力:

local function nearest(x, a, b)
  if a <= x and x <= b then
    return x
  elseif math.abs(a - x) < math.abs(b - x) then
    return a
  else
    return b
  end
end

local function getNearestPointInPerimeter(l,t,w,h, x,y)
  return nearest(x, l, l+w), nearest(y, t, t+h)
end
Run Code Online (Sandbox Code Playgroud)

这适用于周边之外或周边本身.但对于周界的点,它会失败(它只会返回x,y)

我的直觉告诉我解决方案应该很简单,但我似乎没有找到它.

math geometry rectangles bounding-box

6
推荐指数
1
解决办法
5905
查看次数

将具有一定大小的矩形放入矩阵中自由区域的算法

问题
我需要将尺寸为n×m的矩形放入尺寸为N×M的矩阵的自由区域中,其中N=n*2-1,M=m*2-1.矩阵单元被认为是免费的,如果它是true,并被占用false.true由于矩形和矩阵的大小,中心单元始终是,并且始终位于矩形内部.

附加要求是矩形和中心单元的左上角之间的距离必须尽可能小.

n=8和的示例m=5:

111111101111111; 111111111111111; 111111111111111; 111111111111111; 110111111111111; 111111111110111; 111111111111111; 111111111011111; 111111111111111

灰色细胞占据,绿色 - 中心细胞,蓝色细胞 - 解矩形,红线 - 矩形左上角和中心细胞之间的距离.

尝试
暴力解决方案将具有O(N×M×n×m)时间复杂度,这不是非常优化的.如果我预处理矩阵,我可以消除某些单元格中的计算,但这仍然会花费太多时间.

最初我认为我可以采取Max Rectangle问题并且只是将条件从max修改为需要,但是它进入了死胡同(我需要列出直方图中的所有矩形,我不知道如何).然后我认为它就像打包问题,但我能找到的只是它的版本,最初是完全空的空间和多个矩形,这不适用于这个问题.

上下文
在过去,当用户点击网格时,我的程序会放置矩形,左上角与点击点重合,如果它是空的,如果它已经占用了矩形所在的单元格则会失败.我决定修改这种行为,而不是失败,找到最合适的矩形位置,同时仍然包含一个点击点.在上面的矩阵pic中,单击点是绿色单元格,矩阵大小表示矩形的所有可能位置.

PS如果可能的话,我更喜欢真实的语言示例而不是伪代码.我的程序是用Java编写的,但任何语言都可以.

algorithm matrix rectangles

6
推荐指数
1
解决办法
454
查看次数

cv2.rectangle() 调用重载方法,虽然我给了其他参数

cv2.rectangle 有两种调用方式:

  • img = cv.rectangle( img, pt1, pt2,颜色[, 厚度[, lineType[, shift]]] )
  • img = cv.rectangle( img, rec , 颜色[, 厚度[, lineType[, shift]]]

来源:https : //docs.opencv.org/4.1.2/d6/d6e/group__imgproc__draw.html#ga07d2f74cadcf8e305e810ce8eed13bc9

我称矩形如下:

cv2.rectangle(img=cv2_im, pt1=a, pt2=b, 颜色=(0, 255, 0), 厚度=3, lineType=cv2.LINE_AA)

错误信息:

cv2.rectangle(img=cv2_im, pt1=a, pt2=b, color=(0, 255, 0), depth=3, lineType=cv2.LINE_AA) TypeError: rectangle() 缺少必需的参数 'rec' (pos 2) )

我不明白为什么应用程序试图调用该方法的重载版本。U 明确定义版本 1 调用。我尝试使用 (x,y) 等更改变量 a 但它不起作用。正确的方法调用仅在我第一次调用 retangle() 时有效,之后它希望我使用它的重载版本。


python opencv overloading rectangles

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

为什么 PyGame 中根本没有绘制任何内容?

我已经使用 pygame 在 python 中启动了一个新项目,对于背景,我希望下半部分填充灰色,顶部填充黑色。我以前在项目中使用过矩形绘图,但由于某种原因它似乎被破坏了?我不知道我做错了什么。最奇怪的是,每次运行程序的结果都不一样。有时只有黑色屏幕,有时灰色矩形覆盖屏幕的一部分,但永远不会覆盖屏幕的一半。

import pygame, sys
from pygame.locals import *
pygame.init()

DISPLAY=pygame.display.set_mode((800,800))
pygame.display.set_caption("thing")
pygame.draw.rect(DISPLAY, (200,200,200), pygame.Rect(0,400,800,400))

while True:
    for event in pygame.event.get():
        if event.type == QUIT:
            pygame.quit()
            sys.exit()
Run Code Online (Sandbox Code Playgroud)

python pygame rectangles

6
推荐指数
1
解决办法
1748
查看次数