Draft CubicBezCurve/pl: Difference between revisions

From FreeCAD Documentation
(Created page with "==Ustawienia==")
(Created page with "Zapoznaj się z informacjami na stronie Krzywa Bezier'a.")
Line 66: Line 66:
==Ustawienia==
==Ustawienia==


See [[Draft_BezCurve#Preferences|Draft BezCurve]].
Zapoznaj się z informacjami na stronie [[Draft_BezCurve/pl#Ustawienia|Krzywa Bezier'a]].


==Properties==
==Properties==

Revision as of 17:10, 22 November 2023

Rysunek Roboczy: Sześcienna krzywa Beziera

Lokalizacja w menu
Drafting → Bézier tools → Sześcienna krzywa Beziera
Środowisko pracy
Rysunek Roboczy, Architektura
Domyślny skrót
brak
Wprowadzono w wersji
0.19
Zobacz także
Krzywa Bezier'a, Krzywa złożona

Opis

Polecenie Sześcienna krzywa Beziera 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ézier w Inkscape. Ogólną krzywą Béziera dowolnego stopnia można utworzyć za pomocą polecenia Krzywa Bezier'a.

Polecenia Krzywa Bezier'a i Sześcienna krzywa Bezier'a 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.

Użycie

Zapoznaj się również z informacjami na stronie: Tacka narzędziowa, Przyciąganie oraz Wiązania.

  1. Polecenie można wywołać na kilka sposobów:
    • Naciśnij przycisk Sześcienna krzywa Béziera.
    • Wybierz z menu Kreślenie → Narzędzia krzywych Bézier → Sześcienna krzywa Béziera .
  2. Otworzy się panel zadań Sześcienna krzywa Béziera. Więcej informacji można znaleźć w sekcji Opcje.
  3. Nie jest możliwe wprowadzanie punktów za pomocą panelu zadań.
  4. W przypadku następujących modeli Profil nawigacji myszką należy przytrzymać klawisz klawiatury:
    • W przypadku korzystania z profilu OpenInventor klawisz Ctrl musi być wciśnięty przez cały czas trwania polecenia.
    • Jeśli korzystasz z profilu Gesture, klawisz Alt musi być wciśnięty dla każdej sekwencji kliknięcia i przytrzymania, ale możliwe jest również trzymanie tego klawisza wciśniętego przez cały czas trwania polecenia.
  5. Wybierz pierwszy punkt w oknie widoku 3D i przytrzymaj przycisk myszki (1), jest to pierwszy punkt końcowy.
  6. Przeciągnij kursor do innego punktu w oknie widoku 3D i zwolnij przycisk myszki (2), jest to pierwszy punkt kontrolny.
  7. Przesuń kursor do innego punktu w oknie widoku 3D, wybierz ten punkt i przytrzymaj przycisk myszki (3), jest to drugi punkt końcowy.
  8. Przesuń kursor do innego punktu w oknie widoku 3D, aby dostosować końcową krzywiznę segmentu i zwolnij przycisk myszki (4), jest to drugi punkt kontrolny.
  9. Masz teraz jedną krzywą Béziera 3 stopnia.
  10. Opcjonalnie można powtórzyć proces klikania i przytrzymywania (5) oraz przeciągania i zwalniania (6), aby dodać więcej segmentów.
  11. Każdy kolejny segment użyje drugiego punktu końcowego i drugiego punktu kontrolnego poprzedniego segmentu jako odpowiednio pierwszego punktu końcowego i pierwszego punktu kontrolnego.
  12. Naciśnij Esc lub przycisk Zamknij, aby zakończyć polecenie.

Opcje

Zapoznaj się z informacjami na stronie Krzywa Bezier'a.

Uwagi

  • Sześcienną krzywą Beziera środowiska Rysunek Roboczy można edytować za pomocą polecenia Edycja.

Ustawienia

Zapoznaj się z informacjami na stronie Krzywa Bezier'a.

Properties

See Draft BezCurve.

Scripting

See also: Autogenerated API documentation and FreeCAD Scripting Basics.

See Draft BezCurve for general information. A cubic Bézier is created by passing the option degree=3 to makeBezCurve().

For each cubic Bézier segment four points must be used, of which the two extreme points indicate where the spline passes through, and the two intermediate points are control points.

  • If only 3 points are given, it creates a quadratic Bézier instead, with only one control point.
  • If only 2 points are given, it creates a linear Bézier, that is, a straight line.
  • If 5 points are given, the first 4 create a cubic Bézier segment; the 4th and the 5th points are used to create a straight line.
  • If 6 points are given, the first 4 create a cubic Bézier segment; the 4th and the other two points are used to create a quadratic Bézier segment.
  • If 7 points are given, the first 4 create a cubic Bézier segment; the 4th and the other three points are used to create a second cubic Bézier segment.
  • In general, the last point in a group of four is shared with the following three points maximum to create another Bézier segment.
  • To have smooth curves, with no straight segments, the number of points should be 3n + 1 or 3n, where n is the number of segments, for n >= 1.

Examples of Bézier curves produced by using 2, 3, 4, 5, 6, 7, and 8 points. The solid lines indicate cubic Bézier segments; the other lines are quadratic or linear.

Example:

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()