- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我很难将其优雅地表述为算法。
所以我有一个给定的直边形状(即正方形,尽管最终形状只与端点无关)。我得到笛卡尔坐标系上的边界端点:(2,-2) (2,2) (-2,2) (-2,-2)
我得到了任意数量的点(即 7),我想沿着形状(在本例中为正方形)的边缘均匀分布这些点 (x,y)。
我目前的想法是获取所有端点的总长度,将其除以点数以获得线段长度(然后我根据边对其进行归一化)。然后我从一个端点到另一个端点找到这个数量之间的点并累积标准化切片,当这个总数超过 1.0 时我迭代端点并取余数并从那里开始......或类似的东西。
有人可以帮助我将其转化为算法(最好是 C#),或者如果您有更好的解决方案请告诉我。我想有一种排序或分布/划分算法可能会产生同样的影响,但我找不到。我希望这不是显而易见的。
最佳答案
这需要有多普遍?另外,如何表示您的形状和点?您的算法似乎没问题;您需要帮助将其转化为代码吗?
好吧,这是我想出的东西。代码注释:
顺便说一句,我正在使用 Point 类来表示向量。
我还没有测试过这个,所以可能会有错误。该算法处理精确区域的方式可能存在问题(例如,您的正方形恰好有 4 个点)。如果有问题或您有任何疑问,请告诉我! :)
Point[] shapePoints; //already initialized
int numPoints; //already initialized
Point[] retPoints = new Point[numPoints];
int totalLength;
for(int i = 1; i < shapePoints.length; i++){
totalLength += distance(shapePoints[i], (shapePoints[i-1]));
}
float segLength = ((float) totalLength) / numPoints);
Point currShape = shapePoints[0];
Point nextShape = shapePoints[1];
Point prev = currShape;
int counter = 2;
while(numPoints > 0){
Point norm = normalize(new Point(nextShape.x - currShape.x, nextShape.y - currShape.y));
if(distance(nextShape, prev) < segLength){
int tempLength = segLength;
tempLength -= distance(nextShape, prev);
currShape = nextShape;
nextShape = shapePoints[counter];
counter ++;
norm = normalize(new Point(nextShape.x - currShape.x, nextShape.y - currShape.y));
norm.multiply(tempLength);
}
else{
norm.multiply(segLength);
}
retPoints[numPoints - 1] = norm;
prev = retPoints[numPoints - 1];
numPoints --;
}
Point normalize(Point p){
int scale = Math.sqrt(p.x * p.x + p.y * p.y);
p.x = p.x / scale;
p.y = p.y / scale;
return p;
}
关于c# - 形状上的均匀分布算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10294497/
我有代码可以制作任意长度的二进制列表,并打开随机位数: rand_binary_list = lambda n: [random.randint(0,1) for b in range(1,n+1)]
假设我有 20 个攻击回合的回合制游戏,并且玩家的攻击速度决定了他们攻击的频率,当一个人的攻击速度为 5 时,您将如何计算和/或绘制一张“谁在何时攻击”的表格另一个速度为8? (这些是测试值,我将使用
我将我的类定义为: final class Key> { private final T q; private final T o; public Key(T q1, T o1
想象一下10辆车随机,均匀分布在长度为1的圆形轨道上。如果位置用[0,1>范围内的C double表示,那么它们可以排序,车之间的间隙应该是车的位置前面减去后面汽车的位置。最后一个间隙需要添加 1 来
我正在尝试构建一个均匀分布矩阵,每一行都以相同的速率衰减到 0。分布应该在 -1 和 1 之间。我正在看的是构建类似于以下内容的东西: [[0.454/exp(0) -0.032/exp(1) 0.6
我希望盒子像这样展开: 彼此正好相距 218 像素。 我试着把它们都放在一起,但我无法做到完美! .box1, .box2 { margin: 0 20px } 有没有更好的方法来解决这个问题? 忘了
所以我一直在构建一个程序,该程序使用蒙特卡罗模拟来寻找进化图论的属性。它的一个关键功能是能够生成均匀分布的随机图,这样我们就可以确定图的广义性质。对于连接无向图的情况,我已经实现了 this 中概述的
在响应式网站的页脚中,我需要均匀分布一些 li 项。 这是我想要实现的: 这就是我所拥有的: 我想避免为每个 li 设置绝对宽度,以保持网站这部分的响应能力。 继续进行的最佳方式是什么? 最佳答案 你
LinearLayout 的常见用法是平均空间(权重) View ,例如: 如何使用新的 ConstraintLayout 实现这样的等间距 View ? ConstraintLayout 引用链接:
如果我在一个集群中创建 3 个节点,我如何在容器之间均匀分布 docker 容器?例如,如果我创建一个由 3 个节点组成的集群,每个节点上有 8 个 cpu,我通过性能分析确定,当我在每个 cpu 上
我有一个包含 ViewModel 的 ObservableCollection,它又定义了我的按钮定义。 我已经做了几个小时了,一篇又一篇地阅读文章,但无济于事。我试过使用列表框,这是我最接近的。我的
如何使用 ConstraintLayout 获得 5 个均匀分布的正方形,并根据屏幕宽度设置灵活大小? 最佳答案 您需要创建一个连接在其父容器所有边上的小部件链(您可以将此父容器的尺寸设置为您想要/需
我有 100 个元素以随机顺序进入视口(viewport)。它们需要一起在 DOM 容器内形成一个圆圈。我需要一些方法来计算元素需要移动到的位置... 结构是这样的: http://codepen.i
我正在尝试在 Storyboard中为 iPad 和 iPhone 创建用户界面。 iphone 版本少了 1 个按钮。所有按钮和辅助 View 都固定在底部的 LayouGuide 上。此外,我正在
我正在向 添加图像和一些文本输入 (FloatLabelTextInput)在 react native 应用程序中。到目前为止,我在使用 flex 将图像和文本输入均匀分布在 y 轴上时运气不佳。
有一个导航栏 ,里面是一个每个 包含 带有链接(这是用于导航栏) 我查看了 Google 和这个网站,但找不到我要找的东西。 我想要的是能够保持我当前的风格(使用 和 在里面),我想要 在 内
我正在尝试创建一个布局,其中每个 DIV 的最大宽度为 300 像素。 如果屏幕是 600 像素,那么两个 100% 的 div 应该并排放置。如果屏幕是 700px,那么三个 233px(每个 DI
我实现了 Xorshift 生成器和其他生成器来比较它们在我的系统(Windows 和 Linux)上的性能。 https://en.wikipedia.org/wiki/Xorshift http:
我想通过收敛概率曲线图比较几种算法。 目前,我的图表如下所示: 这不允许看到许多曲线的差异。 我希望 y Axis 为“对数”,但与值 1 不同,即我希望 y 值为 [0, 1/2, 3/4, 7/8
我是一名优秀的程序员,十分优秀!