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 __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)
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()
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