标签: intersection

尝试优化直线与圆柱相交

我的大脑一直在我一直在研究的线段与圆柱体相交程序中融化。

 /// Line segment VS <cylinder>
 // - cylinder (A, B, r) (start point, end point, radius)
 // - line has starting point (x0, y0, z0) and ending point (x0+ux, y0+uy, z0+uz) ((ux, uy, uz) is "direction")
 // => start = (x0, y0, z0)
 //   dir = (ux, uy, uz)
 //   A
 //   B
 //   r
 //   optimize? (= don't care for t > 1)
 // <= t  = "time" of intersection
 //   norm = surface normal of intersection point …
Run Code Online (Sandbox Code Playgroud)

c++ math 3d optimization intersection

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

仅渲染与主圆相交的圆的线段/区域

我绝对喜欢数学(或者你们大多数人都会说'数学'!)但是我还没有达到我知道这个问题答案的水平.我有一个主圆,可以在显示屏上的任何x和y处有一个中心点.其他圆圈将随意在显示器周围移动,但在任何给定的渲染方法调用中,我不仅要渲染与主圆相交的圆,而且只渲染在主圆内可见的圆的线段.类比将是对现实生活对象的阴影,我只想绘制那个被"照亮"的对象的一部分.

我想最好用Java做这个,但如果你有一个原始的公式,将不胜感激.我想知道如何绘制形状并用Java填充它,我确定曲线上的折线必须有一些变化吗?

非常感谢

java geometry intersection

5
推荐指数
1
解决办法
1639
查看次数

bash - 基于特定列的两个文件的instersection?

我想做以下事情,如果有人能帮我完成这件事,我真的很感激:

我有两个名为File1.txt和File2.txt的tab-delim文件(如下所示).如果File2.txt中的第二列(整数)在File2.txt的第3列(整数)中找到,那么我想创建new_File1.txt和new_File2.txt并继续追加行.

FILE1.TXT:

1   80  xyc
1   304 xyv
1   813653  xyb
1   813661  xyn
1   954653  xym
Run Code Online (Sandbox Code Playgroud)

FILE2.TXT:

abvb    1   178
aaa 1   304 
ttt 1   353
ggg 1   98971
ghj 1   813653
Run Code Online (Sandbox Code Playgroud)

例如,我的new_File1.txt将如下所示:

new_File1.txt:

1   304 xyv
1   813653  xyb
Run Code Online (Sandbox Code Playgroud)

new_File2.txt:

aaa     1   304
ghj     1   813653
Run Code Online (Sandbox Code Playgroud)

感谢大家的帮助!我用过 :

join -1 2 -2 3 -t '\t' file1.txt file2.txt
Run Code Online (Sandbox Code Playgroud)

但它给了我以下输出:

\1      80      xyc\abvb        1       178
\1      80      xyc\aaa 1       304
\1      80      xyc\ttt 1       353
\1      80      xyc\ggg 1 …
Run Code Online (Sandbox Code Playgroud)

bash intersection file

5
推荐指数
1
解决办法
272
查看次数

python设置与对象集的交集

我正在与亚马逊博托合作,我有2个名单.列表1包含实例对象.列表2包含InstanceInfo对象.两个对象都有一个名为id的属性.我需要获取InstanceInfo列表中存在id的Instance对象列表.

l1 = [Instance:i-04072534, Instance:i-06072536, Instance:i-08072538, Instance:i-0a07253a, Instance:i-e68fa1d6, Instance:i-e88fa1d8, Instance:i-ea8fa1da, Instance:i-ec8fa1dc]

l2 = [InstanceInfo:i-ec8fa1dc, InstanceInfo:i-ea8fa1da, InstanceInfo:i-e88fa1d8, InstanceInfo:i-e68fa1d6]
Run Code Online (Sandbox Code Playgroud)

通缉结果:

l3 = [Instance:i-ec8fa1dc, Instance:i-ea8fa1da, Instance:i-e88fa1d8, Instance:i-e68fa1d6]
Run Code Online (Sandbox Code Playgroud)

现在我有它通过:

l3= []
for a in l1  
    for b in l2:
        if a.id == b.id:
            l3.append(a)
Run Code Online (Sandbox Code Playgroud)

但是,有人告诉我,我应该使用set intersection替换它.我一直在看例子,看起来很简单.但我没有看到任何使用对象的示例.

我已经玩了一段时间,理论上我可以看到它的工作,但可能有一些我可能不知道的'高级'语法.我还在学习python.

python intersection set amazon-ec2 boto

5
推荐指数
1
解决办法
2330
查看次数

将xy数据点图的所有交点与numpy相交?

我正在分析循环拉伸试验的数据.输入使用大量的x和y值列表.为了描述材料是否硬化或软化,我需要得到每个循环回路的蓝色斜率.

tensile_test

坡

获得斜坡的低点是儿童节,但是上层,这是挑战.

the_challenge

到目前为止,我已经采用了这种方法,在每个循环的局部最大值以下的几个点处切出循环,并从硬编号的点数中得出红线.的红线Aproximation被由poly1d(polyfit(x1,x2,1))fsolve被使用,则得到的交点.但是它始终无法正常工作,因为点的分布并不总是相同的.

问题是如何正确定义两条(红色)相交线的间隔.在上图中有3个实验和平均斜率.我花了几天时间试图为每个循环找到4个最接近的点,决定这不是最好的方法.最后,我在stackowerflow结束了这里.

期望的输出是具有交叉点的近似坐标的列表 - 如果要播放,这里是曲线的数据(0,[[xvals],[yvals]]).Theese可以轻松阅读

import csv
import sys
csv. field_size_limit(sys.maxsize)     

csvfile = 'data.csv'
tc_data = {}
for key, val in csv.reader(open(csvfile, "r")):
    tc_data[key] = val
for key in tc_data:
  tc = eval(tc_data[key])

x = tc[0]
y = tc[1]
Run Code Online (Sandbox Code Playgroud)

python numpy intersection points

5
推荐指数
1
解决办法
4667
查看次数

匀称:在两个切割点处从线绳上切下一块

众所周知的功能

from shapely.geometry import *
from shapely.wkt import loads

def cut(line, distance):
# Cuts a line in two at a distance from its starting point
if distance <= 0.0 or distance >= line.length:
    return [LineString(line)]
coords = list(line.coords)
for i, p in enumerate(coords):
    pd = line.project(Point(p))
    if pd == distance:
        return [
            LineString(coords[:i+1]),
            LineString(coords[i:])]
    if pd > distance:
        cp = line.interpolate(distance)
        return [
            LineString(coords[:i] + [(cp.x, cp.y)]),
            LineString([(cp.x, cp.y)] + coords[i:])]
Run Code Online (Sandbox Code Playgroud)

将形状上的线串分成两行距离.

我需要做的是在线上的某个位置从线上切下一段长度

示例行:

line = loads("LINESTRING (12.0133696 47.8217147, 12.0132944 …
Run Code Online (Sandbox Code Playgroud)

python geometry intersection shapely

5
推荐指数
1
解决办法
1571
查看次数

使用elasticsearch匹配嵌套数组中的所有值

我试图使用elasticsearch来匹配嵌套数组中的所有值.例如.我的搜索数组是["1","2","3","4","5","6","7","8","9"] ,我的文档包含一系列数组

"arr":[
["1","2","10"],
["4","5"],
["8","9","11"]
]
Run Code Online (Sandbox Code Playgroud)

我需要匹配嵌套数组中的所有值,但只有一个嵌套数组需要匹配文档才能匹配.所以,在这个例子中仅第二嵌套阵列是匹配,因为"4""5"都是本搜索数组中(因此我的文档是一个匹配).我应该使用什么样的查询来实现这一目标?

arrays intersection elasticsearch

5
推荐指数
1
解决办法
975
查看次数

确定点在3D中是否在三角形内

我正在寻找一种关于确定3D中点是否位于三角形内部的方法的认可。

给定形式为R(t)= e + td的射线以及一组三个点T = {V0,V1,V2}的三个维,它们在三个维度上形成三角形,我知道如何找到平面的参数方程,三个点组成,以及如何确定射线是否与该平面相交。最后,如果相交,我想知道相交点是否实际上在三角形边缘的边界内。

请在下面查看我的图片。

在此处输入图片说明

我在想的是,我可以计算出每个边缘向量与从边缘向量中的第一个边缘到该点的向量之间的点积,并检查它们是否均为正。像这样:

在此处输入图片说明

在这种情况下,该点应在三角形内。对?这种确定计算机图形背面的方法不是吗?

graphics raytracing intersection linear-algebra

5
推荐指数
2
解决办法
2189
查看次数

Python中的区域交集

我有一个代码,它将条件C作为输入,并计算我的问题的解决方案作为(x,y)空间上的"允许区域"A. 这个区域由几个"管"组成,这两个"管"由两条永不交叉的线定义.

我正在寻找的最终结果必须满足k个条件{C1,...,Ck},因此是k个区域{A1,...,Ak}之间的交点S.

这是一个有2个条件的例子(A1:绿色,3个管.A2:紫色,1个管); 解决方案S为红色.

输出2个条件的代码

当我处理4个大约10管的区域时,我怎么能找到S?(最后的情节很糟糕!)

我需要能够绘制它,并找到S中的点的平均坐标和方差(每个坐标的方差).[如果有一种有效的方法可以知道点P是否属于S,我只会使用蒙特卡罗方法].

理想情况下,我也希望能够实现我将从S中删除的"禁管"[它可能比我与禁区外的S相交更复杂,因为来自同一区域的两个管可以交叉(即使定义管的线永远不会交叉)].


注意:

  • 代码还存储行的弧长.

  • 这些线存储为点阵列(每行约1000个点).定义管的两条线不一定具有相同数量的点,但是Python可以在1秒内将它们的全部内插作为它们的弧长的函数.

  • 这些线是参数函数(即我们不能写y = f(x),因为允许线是垂直的).

  • 用绘画编辑情节以获得正确的结果......效率不高!


编辑:

  • 我不知道如何使用plt.fill_between进行多个交集(我可以在这里做2个条件,但是我需要代码在眼睛判断太多行时自动执行).

  • 现在我只是生成线条.我没有写任何东西来寻找最终的解决方案,因为我绝对不知道哪个结构最适合这个.[但是,以前版本的代码能够找到2个不同管的线之间的交叉点,我打算将它们作为多边形传递给它们,但这暗示了其他几个问题..]

  • 我不认为我能做到这一点sets:以所需的精度扫描整个(x,y)区域代表大约6e8点... [由于可变步长(适应曲率),线条只有1e3点,但整个问题相当大]

python numpy intersection matplotlib area

5
推荐指数
1
解决办法
4155
查看次数

Intersection Observer API Fires回调甚至元素不在视图中

我试图找到元素在屏幕上的时间(试图实现无限加载器).

将Observer绑定到列表中的最后一项并监听,不幸的是在chrome 62 mac 10.10中,回调即使是我正在观察的元素也不在视口中.

当我检查交叉比时,我可以很容易地防止它.这是Intersection Observer的工作方式吗?

在此先感谢您的帮助.

bindIO();


function ioCallback(entries, observer) {
    console.log("entries");
    console.log(entries);
    entries.forEach(entry => {
        // Each entry describes an intersection change for one observed
        // target element:
        console.log(entry.boundingClientRect);
        console.log(entry.intersectionRatio);
        console.log(entry.intersectionRect);
        console.log(entry.isIntersecting);
        console.log(entry.rootBounds);
        console.log(entry.target);
        console.log(entry.time);
    });
}

function bindIO(arguments) {
    var options = {
        threshold: 1.0
    }

    observer = new IntersectionObserver(ioCallback, options);
}
var triggerel;
var lastIndex;
var items;
var observer;

setTimeout(function() {
    observeEl();
}, 2000);


function observeEl(arguments) {
    items = document.querySelectorAll('.item');
    lastIndex = items.length
    triggerel = …
Run Code Online (Sandbox Code Playgroud)

javascript firefox google-chrome intersection

5
推荐指数
1
解决办法
3028
查看次数