示例#1
0
    def cut_off_vertex(self, index, alpha):
        new_angle = Edge.angle_points_orient(
            self.curr_polygon.next(), self.curr_polygon.prev(), self.curr_polygon.prev(2)
        )
        alpha1 = self.curr_polygon.get_angle(index - 1)
        self.change_alpha(self.curr_polygon.prev(), alpha1, new_angle, self.curr_angles)
        new_angle = Edge.angle_points_orient(
            self.curr_polygon.next(2), self.curr_polygon.next(), self.curr_polygon.prev()
        )
        alpha2 = self.curr_polygon.get_angle(index + 1)
        self.change_alpha(self.curr_polygon.next(), alpha2, new_angle, self.curr_angles)
        new_polygon = self.curr_polygon.split_indices(index - 1, index + 1)
        if len(self.curr_polygon) == 3:
            self.curr_polygon, new_polygon = new_polygon, self.curr_polygon

        self.triangles.append(new_polygon)
        self.save_triangle_points(new_polygon, len(self.triangles) - 1)