def __init__(self, center, major, minor, angle, st=None, lt=None, col=None, t=None, **kw):
     _cp = center
     if not isinstance(_cp, point._Point):
         _cp = point.Point(center)
     _major = util.get_float(major)
     if not _major > 0.0:
         raise ValueError, "Invalid major axis value: %g" % _major
     _minor = util.get_float(minor)
     if not _minor > 0.0:
         raise ValueError, "Invalid minor axis value: %g" % _minor
     if _minor > _major:
         raise ValueError, "Minor axis must be less than major axis"
     _angle = util.make_angle(angle)
     _st = st
     if _st is None:
         _st = self.getDefaultStyle()
     super(Ellipse, self).__init__(_st, lt, col, t, **kw)
     self.__center = _cp
     self.__major = _major
     self.__minor = _minor
     self.__angle = _angle
     _cp.storeUser(self)
     _cp.connect("moved", self.__movePoint)
     _cp.connect("change_pending", self.__pointChangePending)
     _cp.connect("change_complete", self.__pointChangeComplete)
예제 #2
0
 def __init__(self,
              center,
              major,
              minor,
              angle,
              st=None,
              lt=None,
              col=None,
              t=None,
              **kw):
     _cp = center
     if not isinstance(_cp, point._Point):
         _cp = point.Point(center)
     _major = util.get_float(major)
     if not _major > 0.0:
         raise ValueError, "Invalid major axis value: %g" % _major
     _minor = util.get_float(minor)
     if not _minor > 0.0:
         raise ValueError, "Invalid minor axis value: %g" % _minor
     if _minor > _major:
         raise ValueError, "Minor axis must be less than major axis"
     _angle = util.make_angle(angle)
     _st = st
     if _st is None:
         _st = self.getDefaultStyle()
     super(Ellipse, self).__init__(_st, lt, col, t, **kw)
     self.__center = _cp
     self.__major = _major
     self.__minor = _minor
     self.__angle = _angle
     _cp.storeUser(self)
     _cp.connect('moved', self.__movePoint)
     _cp.connect('change_pending', self.__pointChangePending)
     _cp.connect('change_complete', self.__pointChangeComplete)
def acline_entry_make_angle(gtkimage, widget, tool):
    _entry = gtkimage.getEntry()
    _text = _entry.get_text()
    _entry.delete_text(0,-1)
    if len(_text):
        _angle = util.make_angle(eval(_text, gtkimage.image.getImageVariables()))
        tool.setAngle(_angle)
        gtkentities.create_entity(gtkimage)
def acline_entry_make_angle(gtkimage, widget, tool):
    _entry = gtkimage.getEntry()
    _text = _entry.get_text()
    _entry.delete_text(0, -1)
    if len(_text):
        _angle = util.make_angle(
            eval(_text, gtkimage.image.getImageVariables()))
        tool.setAngle(_angle)
        gtkentities.create_entity(gtkimage)
    def __init__(self, p, a, **kw):
        """Initialize an ACLine object.

ACLine(p, a)

p: A Point object the line passes through
a: The angle at which the line rises or declines
        """
        _a = util.make_angle(a)
        _p = p
        if not isinstance(p, point.Point):
            _p = point.Point(p)
        super(ACLine, self).__init__(**kw)
        self.__keypoint = _p
        self.__angle = _a
        _p.storeUser(self)
        _p.connect('moved', self.__movePoint)
        _p.connect('change_pending', self.__pointChangePending)
        _p.connect('change_complete', self.__pointChangeComplete)
예제 #6
0
    def rotate(self, angle):
        """Rotate an Ellipse

rotate(angle)

Argument 'angle' should be a float.
        """
        if self.isLocked():
            raise RuntimeError, "Rotating object not allowed - object locked."
        _angle = util.get_float(angle)
        if abs(_angle) > 1e-10:
            _cur = self.__angle
            _new = util.make_angle(_angle + _cur)
            self.startChange('angle_changed')
            self.__angle = _new
            self.endChange('angle_changed')
            self.sendMessage('angle_changed', _cur)
            _x, _y = self.__center.getCoords()
            self.sendMessage('moved', _x, _y, self.__major, self.__minor, _cur)
            self.modified()
    def setAngle(self, angle):
        """

setAngle(angle)

The argument a should be a float representing the angle
of the ACLine in degrees.
        """
        if self.isLocked():
            raise RuntimeError, "Setting angle not allowed - object locked."
        _a = util.make_angle(angle)
        _oa = self.__angle
        if abs(_a - _oa) > 1e-10:
            self.startChange('rotated')
            self.__angle = _a
            self.endChange('rotated')
            self.sendMessage('rotated', _oa)
            _x, _y = self.__keypoint.getCoords()
            self.sendMessage('moved', _x, _y, _oa)
            self.modified()
    def rotate(self, angle):
        """Rotate an Ellipse

rotate(angle)

Argument 'angle' should be a float.
        """
        if self.isLocked():
            raise RuntimeError, "Rotating object not allowed - object locked."
        _angle = util.get_float(angle)
        if abs(_angle) > 1e-10:
            _cur = self.__angle
            _new = util.make_angle(_angle + _cur)
            self.startChange("angle_changed")
            self.__angle = _new
            self.endChange("angle_changed")
            self.sendMessage("angle_changed", _cur)
            _x, _y = self.__center.getCoords()
            self.sendMessage("moved", _x, _y, self.__major, self.__minor, _cur)
            self.modified()
    def setAngle(self, angle):
        """Set the Ellipse major axis angle.

setAngle(angle)

Argument 'angle' should be a float. The value will be
adjusted so the angle will be defined from 90.0 to -90.0.
        """
        if self.isModified():
            raise RuntimeError, "Setting angle not allowed - object locked."
        _angle = util.make_angle(angle)
        _a = self.__angle
        if abs(_a - _angle) > 1e-10:
            self.startChange("angle_changed")
            self.__angle = _angle
            self.endChange("angle_changed")
            self.sendMessage("angle_changed", _a)
            _x, _y = self.__center.getCoords()
            self.sendMessage("moved", _x, _y, self.__major, self.__minor, _angle)
            self.modified()
예제 #10
0
    def setAngle(self, angle):
        """Set the Ellipse major axis angle.

setAngle(angle)

Argument 'angle' should be a float. The value will be
adjusted so the angle will be defined from 90.0 to -90.0.
        """
        if self.isModified():
            raise RuntimeError, "Setting angle not allowed - object locked."
        _angle = util.make_angle(angle)
        _a = self.__angle
        if abs(_a - _angle) > 1e-10:
            self.startChange('angle_changed')
            self.__angle = _angle
            self.endChange('angle_changed')
            self.sendMessage('angle_changed', _a)
            _x, _y = self.__center.getCoords()
            self.sendMessage('moved', _x, _y, self.__major, self.__minor,
                             _angle)
            self.modified()
 def find(self, *args):
     _alen = len(args)
     if _alen < 3:
         raise ValueError, "Invalid argument count: %d" % _alen
     _x = util.get_float(args[0])
     _y = util.get_float(args[1])
     _angle = util.make_angle(args[2])
     _t = tolerance.TOL
     if _alen > 3:
         _t = tolerance.toltest(args[3])
     _xmin = _x - _t
     _xmax = _x + _t
     _ymin = _y - _t
     _ymax = _y + _t
     _aclines = []
     for _acl in self.getInRegion(_xmin, _ymin, _xmax, _ymax):
         _ax, _ay = _acl.getLocation().getCoords()
         if ((abs(_ax - _x) < _t) and
             (abs(_ay - _y) < _t) and
             (abs(_acl.getAngle() - _angle) < 1e-10)):
             _aclines.append(_acl)
     return _aclines