Remove spiral ROI
This commit is contained in:
parent
f627a6a447
commit
3c2c970a6b
|
@ -26,7 +26,8 @@ from .. import getConfigOption
|
|||
__all__ = [
|
||||
'ROI',
|
||||
'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)
|
||||
|
||||
|
||||
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):
|
||||
"""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