问题标签 [ellipse]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
matlab - 基于非连续轮廓创建包含填充椭圆的矩阵
我正在尝试创建一个包含 0 值的矩阵,其中 1 个值填充椭圆形状。我的椭圆是使用 minVolEllipse.m (链接 1)生成的,它以“中心形式”和椭圆的中心返回椭圆方程的矩阵。然后,我使用 Ellipse_plot.m 中的一段代码(来自上述链接)将向量参数化为长轴/短轴,生成参数方程,并生成变换坐标矩阵。您可以查看他们的代码以了解这是如何完成的。结果是一个矩阵,该矩阵具有沿椭圆的点的索引位置。除非我将网格点的数量 N 设置为一个高得离谱的值,否则它并不包含沿椭圆轮廓的所有值。
当我使用 MATLAB plot 或 patch 命令时,我看到了我正在寻找的结果。但是,我希望将其表示为 0 值和 1 的矩阵,其中补丁“填充”空白。很明显 MATLAB 有这个功能,但我还没有找到执行它的代码。我正在寻找的类似于图像处理工具箱的 bwfill 工作方式(链接 2)。bwfill 对我不起作用,因为我的椭圆不连续,因此该函数返回一个完全填充有 1 个值的矩阵。
希望我已经很好地概述了这个问题,如果没有,请发表评论,我可以编辑帖子以澄清。
编辑:
我设计了一个策略,使用 Ellipse_plot.m 中的 2-DX 向量作为 EllipseDirectFit.m 的输入(链接 3)。此函数返回椭圆函数 ax^2+bxy+cy^2+dx+dy+f=0 的系数。使用这些系数,我计算了 x 轴和椭圆长轴之间的角度。这个角度以及中心轴和主轴/次轴被传递到 ellipseMatrix.m(链接 4),它返回一个填充矩阵。不幸的是,矩阵似乎与我想要的不一样。这是我的代码的一部分:
编辑2:
作为对@BenVoigt 建议的回应,我在这里写了一个for-loop 解决方案:
虽然这在技术上是解决问题的方法,但我对非迭代解决方案很感兴趣。我在许多大图像上运行这个脚本,并且需要它非常快速和并行。
编辑 3:
感谢@mathematical.coffee 提供此解决方案:
但是,我相信还有更好的方法可以做到这一点。这是我做的一个 for 循环实现,它比上述两种尝试都运行得更快:
没有这个for循环有没有办法实现这个目标(总图像大小仍然是[宽度高度])?这更快的原因是因为我不必遍历整个图像来确定我的点是否在椭圆内。相反,我可以简单地迭代一个正方形区域,该区域是中心的长度 +/- 最大的主轴。
objective-c - 查找控制点以在椭圆上绘制圆弧
我想在椭圆上画一条弧线。我不知道如何用曲线画弧,用直接弧法画弧无济于事,因为它们是在圆上画弧(目标c)
在进一步搜索中,我知道可以使用控制点绘制椭圆弧。我如何找到弧的控制点。
我知道椭圆的中心点(不是两个焦点),起始角度,结束角度,角度在椭圆上相交的两个点。从这些我可以找到两个控制点。
或者还缺少什么来解决这个问题
提前致谢
它说我不能上传图片,因为我的声誉很低。检查这个:https ://s3.amazonaws.com/abduBla/testfile.png
反正。椭圆是使用矩形绘制的。我应该找到什么值来获得控制点。找到控制点的最小和最简单的方法是什么
processing - 旋转椭圆路径中的一些元素
我正在尝试使一些对象(例如 12)在处理中以椭圆路径连续旋转。我有一个草图,它在一个圆圈中旋转,我想让它在一个椭圆中旋转。我有一些来自处理论坛的指针,但指针中的代码与我发布的代码不同,我还无法理解(三角函数较弱)。
我用谷歌搜索了一下,发现一篇文章试图用这个算法实现这一点:
您需要使用一些参数定义椭圆:
如果你想在椭圆上移动,这意味着你改变主轴之间的角度和你在椭圆上的位置。让我们称这个角度为 alpha。
您的位置 (X,Y) 是:
为了向左或向右移动,您需要增加/减少 alpha,然后重新计算您的位置。资料来源: http ://answers.unity3d.com/questions/27620/move-object-allong-an-ellipsoid-path.html
如何将它集成到我的草图中?谢谢你。
这是我的草图:
macos-carbon - MultitouchSupport 私有框架中的接触区域大小
我一直在玩碳多点触控支持私有框架,我已经能够检索各种类型的数据。
其中,每个接触似乎都有一个大小,并且也可以用一个椭圆体(角度、短轴、长轴)来描述。但是,我无法确定用于尺寸和短轴和长轴的参考系。
如果有人能够找到它,我对你的信息很感兴趣。
提前致谢
algorithm - 从散点评估/拟合椭圆
这是交易。我有多个点(X,Y)形成“椭圆形”形状。
我想评估/拟合可能的“最佳”椭圆并获得它的属性(a、b、F1、F2),或者只是椭圆的中心。
任何想法/线索将不胜感激。
吉拉德。
java - 确定一个点是否位于椭圆内,包括边缘
我正在尝试测试一个点是否在一个圆圈内,如果该点在周长上,它应该包含在结果中。但是,Java 的contains()
实现使用小于而不是小于或等于。例如考虑这个片段:
这将打印以下内容:
我怎样才能true
为所有这些情况实现价值?
math - 如何计算椭圆圆周上的点?
我想在 J2ME 的椭圆曲线上绘制一个点
我有 X、Y、宽度、高度和 t 的值。
X和Y是椭圆(根据 J2ME)相对于 Canvas 的位置, t是相对于椭圆中心的角度(我有一个问题的图像表示,但不幸的是博客不允许插入讨论: ) )
这个等式正确吗?或者对于椭圆,我们需要更多的计算吗?
algorithm - 非相交椭圆的最近三个邻居
我正在解决一个问题,即为一组任意放置的非相交椭圆找到最近的三个邻居。作为一个新用户,我不允许包含图像标签,但我在页面底部包含了 URL,因为我一直认为我能够更好地使用视觉辅助工具来解释自己。这张图片展示了我所说的将 3 个最近的椭圆彼此连接起来的阿波罗尼奥斯圆。
到目前为止,我已经尝试使用椭圆之间的最小距离并修改 Delaunay 三角剖分,通过增量和扫描线方法,使用各种技术涉及在每 3 个椭圆配置之间形成的三角形圈等,并尝试使用边界框估计邻居,以及完全没有关于如何真正有效地工作的想法
虽然我已经制定了一个解决方案,但它涉及详尽搜索并比较每个椭圆的三个椭圆与其他椭圆,并且时间复杂度为n(n-1)(n-2)/3!
. 最重要的是,每个计算都是迭代而不是代数完成的。
有没有人知道如何以代数方式完成这个并且n^2
时间复杂度更低?
即使是关于一种技术的建议也适合我尝试,因为现在我已经在这方面工作了将近 3 周,而且真的离一个体面的答案还差得远。
wpf - 使按钮看起来像一个椭圆,然后绑定它的颜色
这是我的 XAML 制作的样式,其中按钮看起来像椭圆。我还用钥匙制作了颜色,因此我可以更改甚至绑定它(运气不好)。绑定的问题是我没有与 DataContent 绑定的名称。
我试图在 C# 中做到这一点Player1 = new Style(typeof(Button));
Player1.Setters.Add(new Setter(Ellipse.FillProperty, new SolidColorBrush(GameInstance.Color1)));
但我只是得到一个按钮
然后我创建了一个 ControlTemplate 、一个网格、一个椭圆并填充了椭圆以准确复制 XAML
但是当我尝试做时出现错误Player1.Setters.Add(new Setter(ct1 etc etc)
任何帮助都将不胜感激,无论是与 XAML 的绑定还是在 c 语言中执行此操作的方法。我也尝试过创建自己的按钮类,但又遇到了问题。
path - Is SVG elliptical arc curve path command overdetermined?
SVG's elliptical arc curve path command takes 9 parameters: implicit current X and Y, rx
(x-radius), ry
(y-radius), x-axis-rotation
, large-arc-flag
, sweep-flag
, x
(endpoint-x), y
(endpoint-y). Lets ignore the two "flag" parameters that I believe to be unimportant for my question. Then 7 parameters remain.
Now my question is: is the ellipse overdetermined or not? I just believe that it is, because providing too small rx
and ry
and an endpoint which is too far the the current point will result in no solution. Thinking this way, only a subset of parameter space forms valid arches, hence the ellipse is overdetermined.
On the other hand, I'm not a geometry expert and I know that SVG is a well-thought-out standard, suggesting that I am wrong. Am I or not?