问题标签 [2d-vector]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1266 浏览

c# - 确定具有 8 个离散方向(水平、垂直和对角线)的 2D 矢量的方向

我有一个游戏手柄拇指杆的输入,它是一个向量。向量的值范围定义了一个矩形内的一个圆,该矩形跨越 -1、-1 到 +1、+1。

我想知道向量接近 8 个可能方向中的哪一个。向量为(0, 0)的情况不用担心,我会单独处理。我怎样才能做到这一点?

注意:这是一个游戏,所以这个函数会很频繁地运行。任何加速函数的方法都会有所帮助,例如我知道我可以使用点积和触发来计算我的向量和每个方向向量之间的角度,但是我想知道是否可以做一些更好的事情,因为我不需要准确的角度。

0 投票
1 回答
145 浏览

c++ - "snake" run error

i'm making a simple snake game in c++. it compiles, but won't run. i'm using netbeans on a mac, and i've never had a problem like this before, so i assume it's a problem with my code:

i think it might be a problem with the 2d vector.

0 投票
1 回答
70 浏览

java - 引用类的向量

考虑以下:

基本上,我试图创建一个类('a')的向量并从另一个类中调用它。几个问题——

1) 在 b 类中,'new var' 的位置是否正确?当我定义向量 var 时,我应该在构造函数之外还是在构造函数内部声明它?这些情况是什么意思。

2)主要,我也想声明一个b类的向量。我该怎么做?

即,100 是大小,5 是达到满负荷时应该增加的数量?

我可以不指定大小并通过 addElement() 继续添加吗? - 向量类型会自动增加其大小吗?

3)因此,要访问b的第i个元素,以及b的成员变量'var'的第j个元素,我将如何指定它?这对吗?

我只是从这一切开始,所以请耐心等待。我是一个真正的新手。

0 投票
3 回答
1625 浏览

c++ - 按多列对 2D 向量进行排序

我正在使用以下提升算法对我的二维向量进行排序。

在这里,我只能按我指定为参数的一列对向量进行排序。但我想按两列对这个向量进行排序。我的第一列应该排序。根据第一列排序,我想再次按第二列对向量进行排序。我怎样才能做到这一点 ?

我想先按第一列排序,然后将第一列相等的排序按第二列排序?

0 投票
1 回答
92 浏览

c++ - 在 2D 矢量中的预定位置更改多个值的最简单方法是什么?

好的,所以我有一个 2d 的字符向量,我称之为网格。让我们说它的 70 x 30。创建网格时,它会自动用“x”填充每个位置

我有一个显示网格的功能。所以我调用了这个函数,控制台上会显示一个 70x30 的 x 网格。

我有另一个函数,我想调用它来实质上用不同的字符替换网格的某些 x,y 坐标处的字符。这些点并不是完全随机/分散的。我基本上是从网格边缘的一个点开始,将锯齿线绘制到另一个边缘。所有点都是预先确定的。有很多点要绘制,所以手动绘制似乎效率低下。

以下是我的想法:

  • 创建一个双循环,宽度和高度,称它们为 i 和 j
  • 如果 i = (a || b || c || d...) && j = (e || f || g..)

并且基本上为每个可能的场景做那个乏味的过程。当然有一个更容易和更简单的方法哈哈。任何建议将不胜感激。谢谢!

0 投票
1 回答
114 浏览

c++ - 如何删除 2D 矢量网格中的部分路径?

我真的一直在为这个项目而苦苦挣扎。所以我有一个“网格”,也就是一个 2D 字符向量。79 个字符宽,20 个字符高。我创建了一些函数,它们基本上绘制了从网格的一个边缘到另一个边缘的路径。这些“路径”有点随机......我有一个随机生成器从 0-7 中选择一个 int 并使用我为其创建函数的路径的组合。所以.. 有几条路径/线穿过网格。

下一部分是在网格上的这些路径上放置矩形/正方形。经过数小时的挫折后,我得到了将这些矩形放置在路径上的程序。

下一部分让我迷失了,我不知道如何开始。我现在需要确定路径是否以某种方式将所有矩形连接在一起,但只有 1 或 2 条路径可能连接到一个矩形。因此,如果其中一个矩形没有触及路径,我需要调用该函数以使用路径和矩形重新生成一个新网格。

除了能够检查路径是否在 1 或 2 个地方接触矩形之外。我需要删除多余的路径字符。因此,如果路径未连接到另一个矩形或所需的路径,我需要删除该字符。

'#' 是路径,'.' 是矩形下面是我的程序现在显示的示例:

注意额外的“#”标记以及它们中的一些是如何无用的?从技术上讲,我不必删除路径分叉的位置并与路径重新连接。从技术上讲,我可以让它们接触超过 1 个位置,因为我将为矩形添加边框.. 只有 1 或 2 个点直接将“#”连接到“。” (现在不担心)它们的厚度不能超过 1 '#' 和以前的要求。在我以某种方式弄清楚如何删除我不需要的那些之后,它应该是这样的:

我得到的最接近的是检测路径从某个位置的哪个方向。但我不知道如何使用它来删除“#”或检查岛矩形的方法。

请帮助我:(我不知道该怎么做!如果您需要更多信息,请告诉我。

0 投票
1 回答
201 浏览

c++ - 如何从具有 2D 字符向量的类转换为具有 char 变量的另一个 obj 的 2D 向量?

我还是新手,所以如果我为我的问题提供太多或不够的信息,我提前道歉。


破败不堪

这个问题不是与流氓游戏相关的问题,但对于我的程序所做的一些背景知识..类似于流氓游戏。

好的,所以我有一个具有成员 2D 字符向量的类(这些字符被操纵以表示“地牢”)。一切都无缝地工作。我想扩展我的程序可以做的事情,所以我决定创建一个新类来替换 chars 的 2D 向量,以便 char 只是新类的视觉表示,其他变量可以与该 char 一起存储。

为了简单起见,我试图删除这个问题不需要的内容。这个新类称为Tile - 表示用于地牢关卡的空间。瓷砖有:

  • 一个名为 displayChar.. 的 char 变量默认为 ' ' 更改以表示它包含的内容

  • (其他变量..)


问题/我可怜的猜测

我不是最擅长完全理解编程语法/实现的一些概念,所以请不要判断。

  • 我填充字符向量的方式,我将其调整为游戏板的宽度,并将所有内容设置为'',因为所有值都是字符
  • 我想我需要用新的 Tile 对象填充它并将它们推送到 2D Tile 矢量?

  • 我操纵 char 值的其他方法正在出错。

  • 我想我应该更改方法以获取指向Tile 对象的指针并使用setDisplayChar(' ')方法来更改其值?

  • 我的 at(int, int) 方法用于返回该位置的字符

  • 我以为我可以将其更改为“返回 m_vvTiles[y][x].getDisplayChar()”,但出现错误

我不擅长改变某些东西的工作方式,而且我通常最终会把我的代码弄得一团糟。我将发布与此相关的代码。我非常感谢您提供的任何帮助。如果我需要添加更多内容,请告诉我。(我会尽量将代码最小化为仅相关的方法)。谢谢!


地牢等级.h


地牢关卡.cpp


瓷砖.h


瓷砖.cpp


*继承人我现有的错误:*

对于 DungeonLevel.cpp 中的方法 dump(),

0 投票
1 回答
476 浏览

c++ - 将向量模拟为二维数组

我知道我们不能有多维向量。但是我考虑过将向量的单元格定义为指针,这样可以模拟一个二维向量。这是代码:

但在这一行中,SeperateBitsBands[i]-> pushback(data.at(j));我得到了错误:

RasterIO在这段代码中,我首先打开了一个图像,并通过函数从“GDAL 库”中提取了它的数字。当然,RasterIO 会按顺序读取图像,因此我尝试借助两个嵌套的 for 循环来分离图像的各个部分。
例如,假设图像是位深度为 16 且大小为 300x400 的 RGB 图像(具有三个波段),则 separatedBitsBands 将是一个大小为 6 的向量,每个单元指向一个大小为 120000 的向量。
昨天我有一个这样的代码:

但是我在行中没有这样的错误Bands.at(i) -> RasterIO(..............)
谁能告诉我我可以做这样的事情吗?(我的意思是模拟 2D 矢量)。如果是这样,怎么办???
为什么我没有错误Bands.at(i) -> RasterIO(..............)???
最重要的是,使用多维向量对性能和速度有很大影响吗?
非常感谢。
任何帮助,将不胜感激。

0 投票
2 回答
63 浏览

visual-studio-2010 - 将向量的元素存储到另一个向量中

我有一个 16997*15931*6 元素的向量。您知道这是 GDAL 库的 RasterIO 函数已读取的栅格的不同波段。现在我想将元素存储到具有六个元素(行)的二维向量中,每行将包含 16997*15931 个元素。我知道我可以有一个循环迭代 16997*15931*6 并评估 i%6:

但由于我使用的是高分辨率 .tiff 图像,因此我需要具有高性能的代码。所以任何更快的算法都会受到欢迎。
谢谢

0 投票
1 回答
1575 浏览

clojure - 如何更新二维向量中的结构值?Clojure

这是在 CLojure 中,首先是我的代码:

所以,我正在做的是尝试使用二维结构向量创建一个二维世界。创建世界后,我希望启动 xy 坐标作为实际坐标,就像我在最后一个函数中尝试的那样。但是,由于 clojure 是可变的不可变的,它不会改变值......而且它也不会返回新数据的 2d 向量......然后我尝试使用 map ......但我对 clojure 真的很陌生。 ..几次尝试后没有工作...

谁能告诉我该怎么做?非常感谢...

add:目标结构是这样的:

这就是我一开始使用嵌套循环的原因......在java中最常见的方法......