|
Lokalizacja w menu |
---|
Kreślenie → Narzędzia krzywych Béziera → Sześcienna krzywa Béziera Kreślenie 2D → Sześcienna krzywa Béziera |
Środowisko pracy |
Rysunek Roboczy, BIM |
Domyślny skrót |
brak |
Wprowadzono w wersji |
0.19 |
Zobacz także |
Krzywa Béziera, Krzywa złożona |
Polecenie Sześcienna krzywa Béziera tworzy krzywą Béziera trzeciego stopnia (wymagane są cztery punkty).
Krzywa Béziera jest jedną z najczęściej używanych krzywych w grafice komputerowej. Polecenie to pozwala utworzyć ciągły splajn składający się z kilku segmentów Béziera trzeciego stopnia, w sposób podobny do narzędzia Béziera w Inkscape. Ogólną krzywą Béziera dowolnego stopnia można utworzyć za pomocą polecenia Krzywa Beziera.
Polecenia Krzywa Béziera i Sześcienna krzywa Béziera używają punktów kontrolnych do zdefiniowania położenia i krzywizny odcinka krzywej. Z kolei polecenie Krzywa złożona określa dokładne punkty, przez które będzie przechodzić krzywa.
Krzywa Spline składająca się z trzech sześciennych segmentów Béziera. Pierwszy segment jest zdefiniowany przez cztery punkty. Kolejne segmenty wykorzystują ponownie dwa punkty z poprzedniego segmentu, a zatem wymagają tylko dwóch dodatkowych punktów.
Zapoznaj się również z informacjami na stronie: Tacka narzędziowa, Przyciąganie oraz Wiązania.
Zapoznaj się z informacjami na stronie Krzywa Beziera.
Zapoznaj się z informacjami na stronie Krzywa Béziera.
Zobacz również stronę: Dokumentacja API generowana automatycznie oraz Podstawy pisania skryptów dla FreeCAD.
Aby uzyskać ogólne informacje, zobacz stronę Krzywa Béziera. Poprzez przekazanie opcji tworzony jest sześcienna krzywa Béziera degree=3
to makeBezCurve()
.
Dla każdego segmentu krzywej sześciennej Béziera należy użyć czterech punktów, z których dwa skrajne wskazują miejsce, przez które przechodzi krzywizna, a dwa punkty pośrednie są punktami kontrolnymi.
3n + 1
lub 3n
, gdzie n
jest liczbą segmentów, dla n >= 1
.Przykłady krzywych Béziera utworzonych przy użyciu 2, 3, 4, 5, 6, 7 i 8 punktów. Linie ciągłe oznaczają sześcienne segmenty Béziera. Pozostałe linie są kwadratowe lub proste.
Przykład:
import FreeCAD as App
import Draft
doc = App.newDocument()
p1 = App.Vector(-3500, 0, 0)
p2 = App.Vector(-3000, 2000, 0)
p3 = App.Vector(-1100, 2000, 0)
p4 = App.Vector(0, 0, 0)
p5 = App.Vector(1500, -2000, 0)
p6 = App.Vector(3000, -1500, 0)
p7 = App.Vector(5000, 0, 0)
p8 = App.Vector(6000, 1500, 0)
rot = App.Rotation()
c1 = Draft.make_circle(100, placement=App.Placement(p1, rot), face=False)
c1.Label = "B1_E1"
c2 = Draft.make_circle(50, placement=App.Placement(p2, rot), face=True)
c2.Label = "B1_c1"
c3 = Draft.make_circle(50, placement=App.Placement(p3, rot), face=True)
c3.Label = "B1_c2"
c4 = Draft.make_circle(100, placement=App.Placement(p4, rot), face=False)
c4.Label = "B1_E2"
c5 = Draft.make_circle(50, placement=App.Placement(p5, rot), face=True)
c5.Label = "B2_c3"
c6 = Draft.make_circle(50, placement=App.Placement(p6, rot), face=True)
c6.Label = "B2_c4"
c7 = Draft.make_circle(100, placement=App.Placement(p7, rot), face=False)
c7.Label = "B2_E3"
c8 = Draft.make_circle(50, placement=App.Placement(p8, rot), face=True)
c8.Label = "B3_c5"
doc.recompute()
B1 = Draft.make_bezcurve([p1, p2], degree=3)
B1.Label = "B_lin"
B1.ViewObject.DrawStyle = "Dashed"
B2 = Draft.make_bezcurve([p1, p2, p3], degree=3)
B2.Label = "B_quad"
B2.ViewObject.DrawStyle = "Dotted"
B3 = Draft.make_bezcurve([p1, p2, p3, p4], degree=3)
B3.Label = "B_cub"
B3.ViewObject.LineWidth = 4
B4 = Draft.make_bezcurve([p1, p2, p3, p4, p5], degree=3)
B4.Label = "B_cub+lin"
B4.ViewObject.DrawStyle = "Dashed"
B5 = Draft.make_bezcurve([p1, p2, p3, p4, p5, p6], degree=3)
B5.Label = "B_cub+quad"
B5.ViewObject.DrawStyle = "Dotted"
B6 = Draft.make_bezcurve([p1, p2, p3, p4, p5, p6, p7], degree=3)
B6.Label = "B_cub+cub"
B6.ViewObject.LineWidth = 2
B7 = Draft.make_bezcurve([p1, p2, p3, p4, p5, p6, p7, p8], degree=3)
B7.Label = "B_cub+cub+lin"
B7.ViewObject.DrawStyle = "Dashed"
doc.recompute()