This repository has been archived on 2023-03-25. You can view files and clone it, but cannot push or open issues or pull requests.
2021-10-13 17:13:24 +02:00

#### 35 lines 854 B Python Raw Permalink Blame History

 ```#!/usr/bin/env python3 ``` ```from lyz_bezmisc import * ``` ```from lyz_ffgeom import * ``` ``` ``` ```def maxdist(xxx_todo_changeme): ``` ``` ((p0x,p0y),(p1x,p1y),(p2x,p2y),(p3x,p3y)) = xxx_todo_changeme ``` ``` p0 = Point(p0x,p0y) ``` ``` p1 = Point(p1x,p1y) ``` ``` p2 = Point(p2x,p2y) ``` ``` p3 = Point(p3x,p3y) ``` ``` ``` ``` s1 = Segment(p0,p3) ``` ``` return max(s1.distanceToPoint(p1),s1.distanceToPoint(p2)) ``` ``` ``` ```def cspsubdiv(csp,flat): ``` ``` for sp in csp: ``` ``` subdiv(sp,flat) ``` ``` ``` ```def subdiv(sp,flat,i=1): ``` ``` while i < len(sp): ``` ``` p0 = sp[i-1][1] ``` ``` p1 = sp[i-1][2] ``` ``` p2 = sp[i][0] ``` ``` p3 = sp[i][1] ``` ``` ``` ``` b = (p0,p1,p2,p3) ``` ``` m = maxdist(b) ``` ``` if m <= flat: ``` ``` i += 1 ``` ``` else: ``` ``` one, two = beziersplitatt(b,0.5) ``` ``` sp[i-1][2] = one[1] ``` ``` sp[i][0] = two[2] ``` ``` p = [one[2],one[3],two[1]] ``` ` sp[i:1] = [p]`