Remove spiral ROI
This commit is contained in:
parent
f627a6a447
commit
3c2c970a6b
@ -26,7 +26,8 @@ from .. import getConfigOption
|
|||||||
__all__ = [
|
__all__ = [
|
||||||
'ROI',
|
'ROI',
|
||||||
'TestROI', 'RectROI', 'EllipseROI', 'CircleROI', 'PolygonROI',
|
'TestROI', 'RectROI', 'EllipseROI', 'CircleROI', 'PolygonROI',
|
||||||
'LineROI', 'MultiLineROI', 'MultiRectROI', 'LineSegmentROI', 'PolyLineROI', 'SpiralROI', 'CrosshairROI',
|
'LineROI', 'MultiLineROI', 'MultiRectROI', 'LineSegmentROI', 'PolyLineROI',
|
||||||
|
'CrosshairROI',
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
@ -2157,79 +2158,6 @@ class _PolyLineSegment(LineSegmentROI):
|
|||||||
return LineSegmentROI.hoverEvent(self, ev)
|
return LineSegmentROI.hoverEvent(self, ev)
|
||||||
|
|
||||||
|
|
||||||
class SpiralROI(ROI):
|
|
||||||
def __init__(self, pos=None, size=None, **args):
|
|
||||||
if size == None:
|
|
||||||
size = [100e-6,100e-6]
|
|
||||||
if pos == None:
|
|
||||||
pos = [0,0]
|
|
||||||
ROI.__init__(self, pos, size, **args)
|
|
||||||
self.translateSnap = False
|
|
||||||
self.addFreeHandle([0.25,0], name='a')
|
|
||||||
self.addRotateFreeHandle([1,0], [0,0], name='r')
|
|
||||||
#self.getRadius()
|
|
||||||
#QtCore.connect(self, QtCore.SIGNAL('regionChanged'), self.
|
|
||||||
|
|
||||||
|
|
||||||
def getRadius(self):
|
|
||||||
radius = Point(self.handles[1]['item'].pos()).length()
|
|
||||||
#r2 = radius[1]
|
|
||||||
#r3 = r2[0]
|
|
||||||
return radius
|
|
||||||
|
|
||||||
def boundingRect(self):
|
|
||||||
r = self.getRadius()
|
|
||||||
return QtCore.QRectF(-r*1.1, -r*1.1, 2.2*r, 2.2*r)
|
|
||||||
#return self.bounds
|
|
||||||
|
|
||||||
#def movePoint(self, *args, **kargs):
|
|
||||||
#ROI.movePoint(self, *args, **kargs)
|
|
||||||
#self.prepareGeometryChange()
|
|
||||||
#for h in self.handles:
|
|
||||||
#h['pos'] = h['item'].pos()/self.state['size'][0]
|
|
||||||
|
|
||||||
def stateChanged(self, finish=True):
|
|
||||||
ROI.stateChanged(self, finish=finish)
|
|
||||||
if len(self.handles) > 1:
|
|
||||||
self.path = QtGui.QPainterPath()
|
|
||||||
h0 = Point(self.handles[0]['item'].pos()).length()
|
|
||||||
a = h0/(2.0*np.pi)
|
|
||||||
theta = 30.0*(2.0*np.pi)/360.0
|
|
||||||
self.path.moveTo(QtCore.QPointF(a*theta*cos(theta), a*theta*sin(theta)))
|
|
||||||
x0 = a*theta*cos(theta)
|
|
||||||
y0 = a*theta*sin(theta)
|
|
||||||
radius = self.getRadius()
|
|
||||||
theta += 20.0*(2.0*np.pi)/360.0
|
|
||||||
i = 0
|
|
||||||
while Point(x0, y0).length() < radius and i < 1000:
|
|
||||||
x1 = a*theta*cos(theta)
|
|
||||||
y1 = a*theta*sin(theta)
|
|
||||||
self.path.lineTo(QtCore.QPointF(x1,y1))
|
|
||||||
theta += 20.0*(2.0*np.pi)/360.0
|
|
||||||
x0 = x1
|
|
||||||
y0 = y1
|
|
||||||
i += 1
|
|
||||||
|
|
||||||
|
|
||||||
return self.path
|
|
||||||
|
|
||||||
|
|
||||||
def shape(self):
|
|
||||||
p = QtGui.QPainterPath()
|
|
||||||
p.addEllipse(self.boundingRect())
|
|
||||||
return p
|
|
||||||
|
|
||||||
def paint(self, p, *args):
|
|
||||||
p.setRenderHint(QtGui.QPainter.Antialiasing)
|
|
||||||
#path = self.shape()
|
|
||||||
p.setPen(self.currentPen)
|
|
||||||
p.drawPath(self.path)
|
|
||||||
p.setPen(QtGui.QPen(QtGui.QColor(255,0,0)))
|
|
||||||
p.drawPath(self.shape())
|
|
||||||
p.setPen(QtGui.QPen(QtGui.QColor(0,0,255)))
|
|
||||||
p.drawRect(self.boundingRect())
|
|
||||||
|
|
||||||
|
|
||||||
class CrosshairROI(ROI):
|
class CrosshairROI(ROI):
|
||||||
"""A crosshair ROI whose position is at the center of the crosshairs. By default, it is scalable, rotatable and translatable."""
|
"""A crosshair ROI whose position is at the center of the crosshairs. By default, it is scalable, rotatable and translatable."""
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user