下图显示了一种所谓的泪滴状DNA分子。对我来说,这个DNA弯曲角度的分布是非常有趣的。红色显示由skimage.morphology.skeletonize
生成的跟踪。
在我的程序中,跟踪被表示为一个numpy数组:numpy数组中的每个条目都是一个float64元组,对应于图像中跟踪点的x和y坐标。因此,如果我应用np.diff(trace, axis=0)
,我会得到我想要在向量中分析的片段
问题:现在,我想知道如何计算两个后续段之间的角度。但是,我现在不知道角度是顺时针还是逆时针。例如,在某一点上,DNA向左弯曲,因此那里的角度与DNA向右弯曲时测得的角度不同,这通常是正确的。解决这个问题的方法是什么
到目前为止我的想法: 我想对每个线段进行插值,然后检查下一个线段是否位于插值线的下方或上方,表示顺时针与逆时针的角度。但这似乎很难实现,因为我是一个初学者,任何输入都将非常感谢
我认为交叉积
np.cross
将在这里帮助您。对于一个简单的三角形,先逆时针旋转,然后顺时针旋转,看起来可能是这样的(可以优化,为了清晰起见,让它保持更长的距离)。角度输出是矢量之间的夹角,方向遵循右手规则:编辑:添加方向变化的曲线,添加图形(逆时针方向的注释):产生
逆时针和顺时针绕列车运行:
符号更改现在指示曲线更改方向的位置
相关问题 更多 >
编程相关推荐