2021-06-03 21:16:29 +08:00
|
|
|
import math
|
2021-06-04 18:02:24 +08:00
|
|
|
|
2021-06-04 23:20:32 +08:00
|
|
|
from graphic import Canvas, Line, Ruler, draw_text
|
2021-06-04 18:02:24 +08:00
|
|
|
from type3d import Vector3D
|
2021-06-03 21:16:29 +08:00
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
2021-06-04 18:02:24 +08:00
|
|
|
canvas = Canvas()
|
|
|
|
|
canvas.init_canvas()
|
2021-06-04 23:20:32 +08:00
|
|
|
line = Line(canvas.msp, Vector3D(20, 30, 0), Vector3D(400, 100, 1), 0.3 * 1e-3, 800)
|
|
|
|
|
line.curve()
|
|
|
|
|
line.sag()
|
|
|
|
|
# canvas.draw(line.swing(80 / 180 * math.pi))
|
|
|
|
|
line111 = Line(
|
|
|
|
|
canvas.msp, Vector3D(50, 30, 0), Vector3D(430, 190, 1), 0.35 * 1e-3, 800
|
|
|
|
|
)
|
|
|
|
|
line111_swing = line111.swing(30 / 180 * math.pi)
|
|
|
|
|
ruler = Ruler(line.curve(), line111_swing)
|
|
|
|
|
closest_distance, poc1, poc2 = ruler.closest_distance()
|
|
|
|
|
canvas.draw([poc1, poc2])
|
|
|
|
|
draw_text(canvas.msp, f"closest distance: {closest_distance}", poc1)
|
|
|
|
|
print(closest_distance)
|
2021-06-04 18:02:24 +08:00
|
|
|
canvas.save("lwpolyline1.dxf")
|