如果有一定数量的节点与边缘连接(如与街道交叉),且每个节点的值为0到3,则边的值为0。
现在我想写一个算法,它将节点的值分配给值边,所以在算法终止后,所有节点的值都是0,而所有的边都是<= 1。
例如,给定此图表:
我想制作这个:
。
我的解决方案:
我已经定义了数据类型-十字路口和Street:
public class Crossing{
int value;
}
public class Street{
int value;
Crossing A, B;
}
该算法迭代交叉路口并将值分配给街道(注意,交叉口只能将其值分配给相邻的街道)。
v
我需要写和算法,填补封闭的多边形与水平等距线。
我对矩形和圆圈做了类似的事情,下面是后者的代码片段:
// circle parameters: center(point(0).x, point(0).y), radius
int offsetX = point(0).x + radius;
int offsetY = point(0).y + radius;
for(int i = -radius; i < radius; i += spacing){
int ry = i;
int rx = sqrt(double(radius*radius - ry*ry)
我有一个无向图,完全图,并希望将它转换成一个有向无圈图,在每个节点之间有一个(单向)路径。为了开始,我想添加随机边和停止一旦所有节点连接。需要研究的是一个算法(使用Python,但任何语言都可以)。
因此,例如,这个图不再被进一步连接:
A ---- B A ---> B
\ / => /
\ / v
C C
,但在这种情况下,所有无向边都会变成有向边。
A ---- B A ---> B
\
我在做一个光线投射器。光线对象具有Vect2 origin和Vect2 direction。origin是摄影机的向量。方向由以下代码计算
var a = (cam_dir - fov) + (((fov * 2) / width) * x);
// x is the current x position of the screen. width is screen width
var b = a * Math.PI / 180; // radians
ray.direction = new Vect2(Math.sin(b), Math.cos(b));
光线投射器的世界是一个数组。每一项都
最近我遇到了一个小问题,那就是:多边形边的点在多边形内吗?
我的意思是--目前我正试图在JS中实现,以满足自定义需求,还有一些方法,比如polygon.contains(point)。
所以我的问题是,当点位于多边形的边缘之一时,结果是点在多边形的内部还是外部?关于顶点的附加问题:如果点是在多边形顶点的顶部--它是在内部还是外部?
我使用的Algo是从中提取的,如下所示:
int pnpoly(int nvert, float *vertx, float *verty, float testx, float testy)
{
int i, j, c = 0;
for (i =
我正在尝试用Python数组制作扫雷机器人,并且已经成功地生成了棋盘和炸弹。然而,我在扫雷的“零递归”方面遇到了困难。如果在扫雷程序中选择0,它将显示所有相邻的瓷砖,如果任何相邻的瓷砖为0,它将显示该0的所有相邻瓷砖,依此类推。最终,在显示的瓷砖的边缘上不能有0,因为所有与显示的0相邻的瓷砖都将被显示。我的递归算法超过了python的最大递归深度。代码如下:
def zero():
for y in range(height):
for x in range(width-1):
if hidden[y][x] == 0 and (hidde
我有一个向量(它是分类的结果),它意味着i和si在同一个类中。
例如:
S=(2,1,1,3,6,7,5,9,6,13,12,14,12,11)
(( `s[1]=2 `so node 1 and 2 are in same class
and `s[2]=1` same information
s[3]=1` so all 1,2,3 are in same class))
现在,我必须找到一种从s获得成员向量的方法:查看哪些节点位于同一个类中。
mVC=[1,1,1,1,2,2,2,2,2,3,3,3,3,3]
(here 1,2,3,4 are in one class)
我有两个:
bool isPointOnShape(int a, int b)
{
}
bool isPointInShape(int a, int b)
{
}
假设我有一个正方形,第一点(左下角)是x,y (0,0)第二点(左上角)是(0,2),第三点是(2,2),第四点是(0,2)。
形状点为(0,1) (1,2) (2,1) (1,0),形状点为(1,1)
如何找出形状/形状上的点,并返回一个真值,以便将其存储在某个地方?
我在Lua中实现了宾利-奥特曼算法,使用位于的伪代码在多边形中寻找相交点。
我对实现算法比较陌生,所以我无法理解其中的所有部分。到目前为止,这是我的代码:
local function getPolygonIntersectingVertices( poly )
-- initializing and sorting X
local X = {}
for i = 1, table.getn( poly ) do
if i == 1 then
table.insert( X, { x = poly[i].x, y = poly[i].y, endpoint = &
我有两个三维凸,平,多边形P0和P1。我想检测它们是否碰撞。我将使用。在这个定理中,由P0和P1中对边的交叉积生成测试轴的子集。
axes = for all
| 0 <= n < N ; N is the count of edges on P0
| 0 <= m < M ; M is the count of edges on P1
Vector3.Cross(P0.Edge[n].Vector,P1.Edge[m].Vector);
然而,在我发现的关于的所有描述中,缺少的是当两个生成向量的交叉积为零时该做什么。
我