有没有一种简单的方法来检测线段交叉点?
这比起初看起来要复杂得多.我拥有的是一个巨大的数组,它由更多的数组组成,该数组包含[以" x,y"形式的点[ Array ( [0] => Array ( [0] => "0,9", [1] => "0,0", [2] => "9,0", [3] => "9,9", [4] => "0,9" ) [1] => Array ( [0] => "1,5", [1] => "1,6", [2] => "3,6", [3] => "3,8", [4] => "4,8" ) ... and so on ... ) 因此,我需要做的是对所有点进行处理,看看数组中的任何点(例如$points[0][1] to $points[0][2])是否与数组中可能存在的任何其他线段相交.所有线段均按照
0 2023-05-29
编程技术问答社区
从kml-文件中计算出地面覆盖层各角的纬度/纬度
我需要在php或javaScript中以kml-file给出的地面覆盖的纬度/lng中找到角落. 即.对于一个具体示例,我需要从: 中获得 60.406505416667 60.400570555556 5.3351572222222 5.3190577777778 3.7088732260919 到角坐标 SW: 60.400316388889;5.3194425 SE: 60.400824722222;5.3355405555556 NE: 60.406759444444;5.3347738888889 NW: 60.406251388889;5.3186730555556 我可以通过 获得另一种方式(大约是给
0 2023-05-29
编程技术问答社区
围绕其中心体/轴旋转三维形状
我在STL文件中定义了一个3D形状,我想使用偏航,俯仰和滚动将其围绕其轴/中心>旋转.但是,我已经实施了一个解决方案,并且它无法正常工作,因为它将围绕原点轴的3D形状旋转而不是 .这是我到目前为止所做的(用php编写): function rotate($vertices, $roll = 0, $pitch = 0, $yaw = 0) { if(!empty($vertices)) { $cosa = cos($yaw); $sina = sin($yaw); $cosb = cos($pitch); $sinb = sin($pitch); $cosc = cos($roll); $sinc = sin($roll); $Axx = $cosa * $cosb; $Axy = $cosa * $sinb * $sinc - $
2 2023-05-27
编程技术问答社区
将多个相邻的矩形合并成一个多边形
背景:我在一个小型购物中心的网站上工作,该中心有多个矩形"单位"出租.当"商店"到来时,它可以租用一个或多个"单位",我想生成一张由商店组成的地图(不接管单位) 问题: 我有一个矩形列表(单位),由成对的点 - [[lefttop_x;lefttop_y];[rightbottom_x;rightbottom_y]] - 我想将它们合并为多边形,因此我可以正确地造型(然后我会这样)通过canvas/svg/vml/raphael.js渲染). 单位始终是矩形 单位具有不同的尺寸 单位总是相邻的(它们之间没有空间) 由于这个(最好是PHP,但我可以处理伪代码)操作,我想拥有一个多边形点. 谢谢. P.S.:我一直在调查这一点,我发现了多个"接近我想要的问题"+答案,但是我太累了,或者我已经与数学失去了太长时间:) 解决方案 O'Rourke研究了一个与该问题有关的问题(与许多与计算几何相关的其他问题),因此产生了一种非常漂亮的方法来有效地解决
0 2023-05-26
编程技术问答社区
R/ImageJ:测量点和曲线之间的最短距离
我在R作为统计平台的经验中有一定的经验,但对基于图像的数学的经验不足.我有一系列带有孔和不规则曲线的照片(TIFF格式,PX/µM).我想测量孔和该特定孔的最接近曲线之间的最短距离.我想为照片中的每个孔做到这一点.孔也不是常规的,所以也许我需要告诉程序什么是孔,什么是曲线(ImageJ具有点和分段的线函数). 有什么想法如何做?我应该在R中使用哪个软件包?您会推荐此类任务的另一个程序吗? 解决方案 编辑:现在使用Sclero软件包可以这样做.该软件包当前可在 github 中中进行详细描述.//github.com/mikkovihtakari/sclero/tree/master/inst/doc" rel =" nofollow noreferrer">教程.只是为了说明,我使用教程中的一个示例: library(devtools) install_github("MikkoVihtakari/sclero", dependencies = TRUE) libra
4 2023-05-25
编程技术问答社区
寻找与任意形状的四边形相交的规则网格单元
我需要找到所有与仲裁型四边形的网格单元相交的网格单元的[x, y],其角坐标定义; 网格单元是128 x 128 px 的瓷砖 网格单元在[-nx, -ny]和[nx, ny] 之间具有整数索引(Max Extend是一个正方形,与(2nx * 128) * (2ny * 128) px) 四边形由角点定义,坐标(qx, qy)在像素空间中以(tl, tr, br, bl) 给出. 这集成在a three.js 场景中: 拐角点/坐标是从相机上播放的 3.planebuffergeemetry 如何以JavaScript的计算有效方式获取所有相交的瓷砖? 目前,我通过使用mx + b将每个四边形边缘(128px)作为步骤来计算周长瓷砖.从那里,我只为行添加内部瓷砖索引行.但这有些笨拙,这可能是或可能不是编码技能问题.我将尝试使用三. 我正在寻找更好的解决方案算法;基本公式,伪代码,想法或确定的解决方案. 解决方案 要有效地找到与四边形相交的
0 2023-05-24
编程技术问答社区
寻找二维空间中圆内的所有点
我代表我的2D空间(考虑一个窗口),其中每个像素在2D数组中显示为单元格.即,一个100x100窗口由相同维度的数组表示. 现在在窗口中给出了一个点,如果我绘制一个半径r的圆,我想找到所有位于该圆圈中的点. 我以为我会检查半径周围的正方形区域的每个点,side = 2*r是否位于圆圈中.我可能会使用普通的距离公式? 因此,也许以下内容: for (x=center-radius ; x
0 2023-05-23
编程技术问答社区
MATLAB/Octave:从图像中切割大量的圆圈
我有一个矩阵(图像)和有关有趣部分的信息 (中心的相关和半径给定).我想为所有圆圈剪下 矩阵的一部分是为了为每个圆圈进行更多计算.或者至少我想在所有圆圈中都有一个bitmask. 我使用八度(但也可以使用MATLAB,但由于许可证的限制,这将很困难),并且具有以下脚本,并带有stackoverflow的一些提示.我有20个圆圈的信息,使用八度的核心i5上大约需要0.7 s: % image dim_x = 1000; dim_y = 1000; A=rand(dim_x,dim_y); % center positions and ... c = [222 111; 878 112; 81 718; 89 112; 222 111; 878 112; 81 718; 89 112; 222 111; 878 112; 81 718; 89 112; 222 111; 878 112; 81 718; 89 112; 222 111; 878 112; 81 718; 89
6 2023-05-23
编程技术问答社区
按角度对向量进行排序的最快方法,无需实际计算该角度
许多算法(例如 解决方案 我开始解决这个问题,并意识到规格是不完整的. atan2有不连续性,因为随着DX和DY的变化,atan2在-pi和 +pi之间会跳跃.下图显示了@MVG建议的两个公式,实际上它们在与atan2相比的位置都有不同的位置. (NB:我在第一个公式中添加了3个,在替代方案中添加了4个,以使线不会重叠在图表上).如果我在该图中添加atan2,则将是直线y = x.因此,在我看来,可能会有各种答案,具体取决于人们想要放置不连续性的位置.如果一个人真的想复制atan2,则答案(以这种类型)为 # Input: dx, dy: coordinates of a (difference) vector. # Output: a number from the range [-2 .. 2] which is monotonic # in the angle this vector makes against the x axis. #
0 2023-05-23
编程技术问答社区
将x,y点的集合与另一个按比例、旋转、平移的集合相匹配,并且有缺失的元素
(我为什么要这样做?请参见下面的说明) 考虑两组点,A和B,如下所示 它可能看起来不像它,但是Set A在set B中"隐藏".由于B中的点相对于(x, y)> (x, y),因此无法轻易看到它.更糟糕的是,A中存在的某些点在B中缺少,B包含许多不在A中的点. . 我需要找到必须应用于B设置的适当缩放,旋转和翻译,以便将其与Set A匹配.在上面显示的情况下,正确的值为: scale = 0.14, rot_angle = 0.0, x_transl = 35.0, y_transl = 2.0 产生(足够好)匹配 (在红色中,仅显示匹配的B点;这些点位于右第一个图中的扇区1000
0 2023-05-23
编程技术问答社区
寻找重叠矩形面积的高效算法是什么?
我的情况 输入:一组矩形 每个级别由这样的4个双打组成:(x0,y0,x1,y1) 它们不是以任何角度"旋转"的,它们都是"正常"的矩形,这些矩形向上/向上/向下/向左/右". 它们是随机放置的 - 它们可能在边缘接触,重叠或没有任何联系 我将有几百个矩形 这是在C# 中实现的 我需要找到 由它们的重叠形成的区域 - 画布中的所有区域都多于一个矩形"覆盖"(例如,有两个矩形,是交叉路口) 我不需要重叠的几何形状 - 只是区域(示例:4平方英寸) 重叠不应多次计数 - 例如,想象3个具有相同大小和位置的Rects - 它们彼此之间是彼此的 - 应该对此区域进行一次计数(不是三次) 示例 下图包含三个矩形:a,b,c A和B重叠(如破折号所示) B和C重叠(如破折号所示) 我正在寻找的是显示破折号的区域 - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
0 2023-05-23
编程技术问答社区
WPF几何图形(Path)的部分填充形状
这个想法是获得评级控制,它的价值可能像0.3一样,并将其绘制为部分填充的形状. 我使用的方法在Codeproject文章中进行了描述.具有Path,添加蒙版(矩形),添加轮廓. 使用的原始代码Margin用于掩模和固定宽度路径. 问题在于,使用矩形作为掩码重新绘制背景,这是渐变的,因此我无法为蒙版设置相同的背景值. 我更改了颜色只是为了使其更加清楚. 是否可以模拟部分填充的路径?
14 2023-05-21
编程技术问答社区
WPF-Path Geometry...有什么方法可以绑定数据属性吗?
i有一个ControlTemplate在给定控件的AdornerLayer上用作"气泡"弹出窗口. 它可以正常工作,但我需要能够计算其应显示位置(中/底部). 而不是: 我正在寻找(显然这不起作用,但它说明了我要完成的工作: 可以用ValueConverter完成吗?由于某种原因,我只是无法可视化解决方案.我也对替代方案开放. 感谢您的阅读,如果我能提供更多信息,请询问. 解决方案 如果您想要一个值转换器可以将字符串转换为路径数据,则可能想尝试通用值转换器我写了一段时间. 另外,要绑定到单个属性,您必须通过将各种
4 2023-05-21
编程技术问答社区
如何使用start和endAngle渲染一个svg圆圈
我已经使用启动和危害渲染了SVG圆圈.它工作正常.但是,当我渲染完整的圆圈(startangle as 70 and tage and of 70)时,输出却大不相同(除了0、90、180、270除外).我为此代码做错了什么? function getPathArc(center, start, end, radius) { end -= this.isCompleteAngle(start, end) ? 0.0001 : 0; var degree = end - start; degree = degree
4 2023-05-21
编程技术问答社区
不需要的翘曲效果在路径上绘制文字 安卓系统
我在路径上绘制文本进行一些测试.我通过将位图设置为画布来制作背景图片.然后,我在通往帆布的路径上绘制文本,由矩阵旋转.我必须缩短代码,我只会发布重要的部分,因为它太长了.下面显示的图像是用gimp裁剪的,因此不会因不同的尺寸而烦恼.我的矩形,路径和矩阵对象: RectF drawTextOval; Path drawTextPath; Matrix mDrawnMatrix; 现在,这是我要在圆形路径上绘制文本的方法: drawTextOval.set(drawTextPosX - drawTextArc, drawTextPosY - drawTextArc, drawTextPosX + drawTextArc, drawTextPosY + drawTextArc); drawTextPath.addArc(drawTextOval
0 2023-05-21
编程技术问答社区
在wpf中把一个几何图形转换成一个路径(用blend?)
我的问题很简单. 如何转换此代码: 进入 之类的东西 (请注意,第二个会产生一个检查标记,而不是椭圆形.它只是出于插图目的,我的目标就是:找到序列给出的椭圆形) ) 编辑:我还阅读了有关XAML中Bezier曲线的文档,并且完全意识到,我可以通过计算Bezzier曲线的确切点来获得正确的代码以获得椭圆形,但我不希望转到自己进行此计算的麻烦,所以我想知道是否有一种简单的方法可以(在混合中) 解决方案 这显示了如何从代码中进行操作.我不确定这是否会解决您的问题 - 您说"与混合?"在标题中,我不知道一种融合的方法.但我希望这可能会有所帮助. 第一步是将Ellip
0 2023-05-21
编程技术问答社区
将路径转换为几何形状
嘿,我试图总结并提出一个基本问题和我的想法,我的想法到目前为止尚不正常:s 基本上我的问题是: 用户将元素添加在一起,我想根据这些数字创建一个新元素,以便可以为用户定义的元素制定新的路径.可以说我有一个正方形和一个三角形.用户将其结合到房屋中.现在,我想让房屋成为用户的元素.为此,我需要元素的路径,如何创建这个? 我的想法 使用的图元素基于路径字符串.因此,我希望将它们转换为以后可以使用的几何元素.我使用andréMeneses">andréMeneses在下面的答案中,此处复制的代码: public static Geometry PathMarkupToGeometry(ShieldGearViewModel shieldGearModelRec) { string pathMarkup = shieldGearModelRec.Gear.Path; try { string xaml
0 2023-05-21
编程技术问答社区
用three.js进行挤压
我想沿着一个圆的矩形挤出一个3D戒指 我已经查看了WebGL_Geometry_extrude_shapes.html示例,但是我无法用圆圈更改示例路径. 有人可以发布一个例子吗? 预先感谢! 解决方案 我想您正在寻找一种称为a ,例如 var pts = [ new THREE.Vector3(150,0,50),//top left new THREE.Vector3(200,0,50),//top right new THREE.Vector3(200,0,-50),//bottom right new THREE.Vector3(150,0,-50),//bottom left new THREE.Vector3(150,0,50)//back to top left - close square path ]; var
4 2023-05-21
编程技术问答社区
如何将粗大的二维线条渲染成多边形?
我有一个由2D点列表组成的路径.我想将它们变成一条三角形,以渲染具有指定厚度(以及其他此类内容)的纹理线.因此,从本质上讲,2D点的列表需要成为指定多边形轮廓的顶点列表,如果渲染将呈现该行.问题是处理拐角连接,手动器,帽子等.从没有透支,干净的连接等的意义上,由此产生的多边形必须是"完美的".这样它可以被挤出或以其他方式挤出. . 是否有任何简单资源可以提供算法洞察力,代码或有关有效执行此操作的更多信息? 我绝对不希望用曲线,弧形,破折号和所有铃铛和所有钟声和所有的铃铛和所有的铃铛和所有的铃铛.我一直在多个源树中挖掘OpenVG实施和其他东西以找到一些见解,但是所有这些都令人费解. 我肯定愿意自己编码,但是有许多退化的情况(小部分 +较厚的宽度 +尖角)会产生各种联合问题.即使有一点帮助也可以节省我的时间来处理所有这些. 编辑:如果您只是从顶点转到顶点,这是一个堕落案例之一的示例.红色是原始路径.橙色块是在指定的宽度对齐并以每个段为中心的指定宽度绘制的矩形.
10 2023-05-21
编程技术问答社区