草庐IT

二维前缀和

全部标签

c# - 二维柏林噪声

我已经完全掌握了3D柏林噪声的艺术,现在我正在尝试将我的相同实现用于2D算法。问题似乎在于选择我的渐变方向。在3D中,我在均匀分布的方向上使用了16个渐变,效果很好。在2D中,我想我会使用8个渐变。上、下、左、右、四个对角线方向。这是我得到的:噪声的总体外观总是正确的,但正方形的边缘并不完全匹配。我也尝试过使用其他渐变或更少的渐变,但得到了类似的结果。在另一个示例中,您可以看到边缘有时会匹配并且该区域的结果很好-当我不使用渐变而只是在4个角的每个角随机选取的值之间进行插值时,我得到了正确的结果,这让我认为是渐变部分搞砸了。这是我的代码://8differentgradientdirec

c# - 如何使用 LINQ 转置二维集合中的维度?

考虑以下结构:IEnumerable>collection=new[]{new[]{1,2,3},new[]{4,5,6},new[]{7,8,9}};如何枚举此集合以获得IEnumerable由第一项、第二项等组成的集合?即{1,4,7},{2,5,8},...(虽然我选择的实现是int[]对象,但假设您只有IEnumerable功能。谢谢。) 最佳答案 这是一种使用生成器而不是递归的方法。数组构造也较少,因此它可能更快,但这完全是推测。publicstaticIEnumerable>Transpose(thisIEnumerab

c# - 在C#中创建二维数组的数组

我只是想创建一个二维数组的数组来存储坐标点。所以我想要一个数组,其中每个索引返回一个二维数组,我将其用作x和y。这是我尝试过的:waypoints=newint[4][,]{{{0},{6,0}},{{1},{1,1}},{{2},{1,5}},{{3},{6,5}}};我意识到这可能看起来很愚蠢,但我已经尝试在Google上查找它,但没有得到任何好的结果。报错:"errorCS0623:Arrayinitializerscanonlybeusedinavariableorfieldinitializer.Tryusinganewexpressioninstead"我也试过这样做:wa

c# - "o"作为变量前缀是什么意思?

在oCn?规则是什么?using(SqlConnectionoCn=newSqlConnection("Server=(local);Database=Pubs;UserID=TestUser1;Password=foo1;")){oCn.Open();...}我在这篇文章中发现了这种命名方式http://msdn.microsoft.com/en-us/magazine/cc163799.aspx 最佳答案 “Cn”是一个*o*对象的完全过时的说法。 关于c#-"o"作为变量前缀是什么

c# - 游戏编程 - 二维游戏对象之间的通信

最近我一直在尝试用C#编写游戏代码。我没有为此使用XNA,因为我认为如果我从头开始编写游戏代码我会学到更多(尽管我使用的是多媒体引擎)。我正在尝试设计一个2DRPG游戏——我知道这有点雄心勃勃,但我至少对游戏的基本部分(即“样板”代码)有相当好的理解,而且我已经到达了我不知道从这里去哪里的部分。在2D游戏中,您通过在不同“区域”中走动来推进游戏。一旦你击中了一个“门户板block”,你就会被传送到下一个区域等等。我无法理解应该如何设置这些区域对象。这是我的第一个想法:每个区域都有一些不同的集合结构(例如,可见性四叉树、碰撞四叉树、AI实体列表等)。所以如果我要在游戏中添加一个敌人实体,

c# - C#中的二维数组切片

我想在C#中对二维数组进行切片。我有double[2,2]价格并且想要检索此数组的第二行。我试过prices[1,],但我觉得它可能是别的东西。提前致谢。 最佳答案 没有直接的“切片”操作,但是你可以定义一个这样的扩展方法:publicstaticIEnumerableSliceRow(thisT[,]array,introw){for(vari=0;i 关于c#-C#中的二维数组切片,我们在StackOverflow上找到一个类似的问题: https://s

c# - 如何将二维数组中的一行值复制到一维数组中?

我们有以下对象int[,]oGridCells;仅与固定的第一个索引一起使用intiIndex=5;for(intiLoop=0;iLoop.NET中有没有一种方法可以将固定第一个索引处的值转换为一维数组(而不是通过循环值)?如果数组只循环一次,我怀疑它会加快代码速度(而且很可能会使代码变慢)。但是,如果对数组进行大量操作,那么单维数组会比多维数组更有效。我问这个问题的主要原因是看看它是否可以完成以及如何完成,而不是将其用于生产代码。 最佳答案 以下代码演示了将16个字节(4个整数)从二维数组复制到一维数组。int[,]oGridC

c# - 何时为成员添加 'this' (C#) 前缀的好规则是什么?

如果我正在访问一个成员字段、属性或方法,我永远不确定什么时候应该在它前面加上“this”。我不是在询问需要它的情况,例如局部变量具有相同名称的情况。我说的是意思完全相同的情况。哪个更具可读性?是否有任何我应该遵循的标准、最佳实践或经验法则?它应该在整个类或整个代码库中保持一致吗? 最佳答案 在这一点上我不同意StyleCop,而且我什至不确定StyleCop的意见是否应该被解释为Microsoft的官方指南。它是Microsoft使用的内部工具,但并非所有团队都使用它,也并非所有团队都使用所有规则。在任何地方都添加this是没有必要

c# - 在 C# 中将二维数组归零的最快方法

我有一个二维数组,我想将其清除并重置为0值。我知道如何使用Array.Clear()清除向量(一维数组),但我不知道清除二维矩阵的最佳方法。doubleD=newdouble[10];Array.Clear(D,0,D.Length);如何清除一个2DNxM数组doubleD[,]=newdouble[N,M];感谢您提供的任何帮助。 最佳答案 Array.Clear也适用于多维数组:double[,]D=newdouble[M,N];Array.Clear(D,0,D.Length);注意,不需要自己计算长度,因为Length属性

c# - 将一个二维数组复制到另一个二维数组

我使用这段代码将一个二维数组复制到另一个二维数组:Array.Copy(teamPerformance,0,tempPerformance,0,teamPerformance.Length);但是,当我更改tempPerformance中的一些数据时,这些更改也适用于teamPerformance。我应该怎么做才能控制它? 最佳答案 你需要Clone()double[,]arr={{1,2},{3,4}};double[,]copy=arr.Clone()asdouble[,];copy[0,0]=2;//itreallycopie