2024-06-10 02:15:43 发布
网友
我在做流式细胞术。我也在使用python的fcs模块。 我想为创建的图形创建不同的门。在
我无法理解如何创建“自由形式”门。 也请让我知道,如果任何人有任何自由形式的门控或任何门控与py fcm相关的例子。在
在这里,我有兴趣了解如何从自由形式选通获得面积。在
仅供参考。http://packages.python.org/fcm/basic.html#gating-and-working-withe-the-view-tree
套餐http://packages.python.org/fcm/basic.html
py fcmhttp://code.google.com/p/py-fcm/
自由形式门实际上是一个多边形门,在创建门时鼠标移动的每个点都有一个顶点。如果可以创建多边形门,则可以创建自由形式门;前提是有足够的顶点。由于您还询问了如何创建其他门类型,我怀疑您真正的问题是如何执行选通。在
要执行选通,必须确定哪些事件位于指定区域内。矩形区域最容易处理。识别事件是否位于矩形区域的伪代码可能如下所示:
EventInRectRegion (event e, region r) return (((e[r.xParam] >= r.xMin) && (e[r.xParam] < r.xMax)) && ((e[r.yParam] >= r.yMin) && (e[r.yParam] < r.yMax)))
您应该能够看到,确定事件是否在矩形中与用于确定任何点是否在任何几何图形内的代码类型相同。这种类型的代码用于鼠标点击测试和其他相关任务。在
将其扩展到圆形、多边形和其他形状需要遵循相同的路径。看看像Point in Polygon这样的算法的例子。对于圆,可以将圆表示为多边形,然后使用该算法,也可以使用“在圆中查找点”算法。在
我希望在您进一步研究这个问题时,您会发现性能是一个问题。我链接的Polygon中的Point-in-Polygon文章展示了几种不同的算法,其中主要关注的是性能与速度的权衡。您将不得不做出一些决定,确切地说,您希望如何执行这种命中测试,以及您想要做出什么样的权衡。在
例如,您可以精确地测试每个事件(就像我在伪代码中所做的那样)。这是准确的,但它要求您每次评估边界。另一种算法是选择一个位图分辨率并渲染其中的区域。然后,可以通过测试给定位图像素是否处于打开或关闭状态来测试事件是否在该区域中。这允许您只对区域渲染数学进行一次求值,但代价是位图的内存和命中测试中的某些精度。在
自由形式门实际上是一个多边形门,在创建门时鼠标移动的每个点都有一个顶点。如果可以创建多边形门,则可以创建自由形式门;前提是有足够的顶点。由于您还询问了如何创建其他门类型,我怀疑您真正的问题是如何执行选通。在
要执行选通,必须确定哪些事件位于指定区域内。矩形区域最容易处理。识别事件是否位于矩形区域的伪代码可能如下所示:
您应该能够看到,确定事件是否在矩形中与用于确定任何点是否在任何几何图形内的代码类型相同。这种类型的代码用于鼠标点击测试和其他相关任务。在
将其扩展到圆形、多边形和其他形状需要遵循相同的路径。看看像Point in Polygon这样的算法的例子。对于圆,可以将圆表示为多边形,然后使用该算法,也可以使用“在圆中查找点”算法。在
我希望在您进一步研究这个问题时,您会发现性能是一个问题。我链接的Polygon中的Point-in-Polygon文章展示了几种不同的算法,其中主要关注的是性能与速度的权衡。您将不得不做出一些决定,确切地说,您希望如何执行这种命中测试,以及您想要做出什么样的权衡。在
例如,您可以精确地测试每个事件(就像我在伪代码中所做的那样)。这是准确的,但它要求您每次评估边界。另一种算法是选择一个位图分辨率并渲染其中的区域。然后,可以通过测试给定位图像素是否处于打开或关闭状态来测试事件是否在该区域中。这允许您只对区域渲染数学进行一次求值,但代价是位图的内存和命中测试中的某些精度。在
相关问题 更多 >
编程相关推荐