def getQuadrantPoints(self): result = [] angle = 0 if qad_utils.isAngleBetweenAngles(self.startAngle, self.endAngle, angle) == True: result.append( QgsPoint(self.center.x() + self.radius, self.center.y())) angle = math.pi / 2 if qad_utils.isAngleBetweenAngles(self.startAngle, self.endAngle, angle) == True: result.append( QgsPoint(self.center.x(), self.center.y() + self.radius)) angle = math.pi if qad_utils.isAngleBetweenAngles(self.startAngle, self.endAngle, angle) == True: result.append( QgsPoint(self.center.x() - self.radius, self.center.y())) angle = math.pi * 3 / 2 if qad_utils.isAngleBetweenAngles(self.startAngle, self.endAngle, angle) == True: result.append( QgsPoint(self.center.x(), self.center.y() - self.radius)) return result
def getPerpendicularPoints(self, point): result = [] angle = qad_utils.getAngleBy2Pts(self.center, point) if qad_utils.isAngleBetweenAngles(self.startAngle, self.endAngle, angle) == True: result.append(qad_utils.getPolarPointByPtAngle(self.center, angle, self.radius)) angle = angle + math.pi if qad_utils.isAngleBetweenAngles(self.startAngle, self.endAngle, angle) == True: result.append(qad_utils.getPolarPointByPtAngle(self.center, angle, self.radius)) return result
def getPerpendicularPoints(self, point): result = [] angle = qad_utils.getAngleBy2Pts(self.center, point) if qad_utils.isAngleBetweenAngles(self.startAngle, self.endAngle, angle) == True: result.append( qad_utils.getPolarPointByPtAngle(self.center, angle, self.radius)) angle = angle + math.pi if qad_utils.isAngleBetweenAngles(self.startAngle, self.endAngle, angle) == True: result.append( qad_utils.getPolarPointByPtAngle(self.center, angle, self.radius)) return result
def isPtOnArc(self, point): dist = qad_utils.getDistance(self.center, point) if qad_utils.doubleNear(self.radius, dist): angle = qad_utils.getAngleBy2Pts(self.center, point) return qad_utils.isAngleBetweenAngles(self.startAngle, self.endAngle, angle) else: return False
def getQuadrantPoints(self): result = [] angle = 0 if qad_utils.isAngleBetweenAngles(self.startAngle, self.endAngle, angle) == True: result.append(QgsPoint(self.center.x() + self.radius, self.center.y())) angle = math.pi / 2 if qad_utils.isAngleBetweenAngles(self.startAngle, self.endAngle, angle) == True: result.append(QgsPoint(self.center.x(), self.center.y() + self.radius)) angle = math.pi if qad_utils.isAngleBetweenAngles(self.startAngle, self.endAngle, angle) == True: result.append(QgsPoint(self.center.x() - self.radius, self.center.y())) angle = math.pi * 3 / 2 if qad_utils.isAngleBetweenAngles(self.startAngle, self.endAngle, angle) == True: result.append(QgsPoint(self.center.x(), self.center.y() - self.radius)) return result
def getTanPoints(self, point): result = [] circle = QadCircle() circle.set(self.center, self.radius) points = circle.getTanPoints(point) tot = len(points) for p in points: angle = qad_utils.getAngleBy2Pts(self.center, p) if qad_utils.isAngleBetweenAngles(self.startAngle, self.endAngle, angle) == True: result.append(p) return result