Draft CubicBezCurve/pl: Difference between revisions

From FreeCAD Documentation
(Created page with "==Opis==")
No edit summary
 
(35 intermediate revisions by 2 users not shown)
Line 3: Line 3:
{{Docnav/pl
{{Docnav/pl
|[[Draft_BSpline/pl|Krzywa złożona]]
|[[Draft_BSpline/pl|Krzywa złożona]]
|[[Draft_BezCurve/pl|Krzywa Bezier'a]]
|[[Draft_BezCurve/pl|Krzywa Bézier'a]]
|[[Draft_Workbench/pl|środowisko pracy Rysunek Roboczy]]
|[[Draft_Workbench/pl|środowisko pracy Rysunek Roboczy]]
|IconL=Draft_BSpline.svg
|IconL=Draft_BSpline.svg
Line 12: Line 12:
{{GuiCommand/pl
{{GuiCommand/pl
|Name=Draft CubicBezCurve
|Name=Draft CubicBezCurve
|Name/pl=Rysunek Roboczy: Sześcienna krzywa Beziera
|Name/pl=Rysunek Roboczy: Sześcienna krzywa Bézier'a
|MenuLocation=DraftingBézier tools → Sześcienna krzywa Beziera
|MenuLocation=KreślenieNarzędzia krzywych Bézier'a → Sześcienna krzywa Bézier'a
|Workbenches=[[Draft_Workbench/pl|Rysunek Roboczy]], [[Arch_Workbench/pl|Architektura]]
|Workbenches=[[Draft_Workbench/pl|Rysunek Roboczy]], [[Arch_Workbench/pl|Architektura]]
|Version=0.19
|Version=0.19
|SeeAlso=[[Draft_BezCurve/pl|Krzywa Bezier'a]], [[Draft_BSpline/pl|Krzywa złożona]]
|SeeAlso=[[Draft_BezCurve/pl|Krzywa Bézier'a]], [[Draft_BSpline/pl|Krzywa złożona]]
}}
}}


Line 22: Line 22:
==Opis==
==Opis==


The [[Image:Draft_CubicBezCurve.svg|24px]] '''Draft CubicBezCurve''' command creates a [http://en.wikipedia.org/wiki/Bezier_curve Bézier curve] of the third degree (four points required).
Polecenie [[Image:Draft_CubicBezCurve.svg|24px]] '''Sześcienna krzywa Bézier'a''' tworzy [http://en.wikipedia.org/wiki/Bezier_curve krzywą Béziera] trzeciego stopnia ''(wymagane cztery punkty)''.


The Bézier Curve is one of the most commonly used curves in computer graphics. This command allows you to create a continuous spline made up of several 3rd-degree Bézier segments, in a way that is similar to the Bézier tool in [https://inkscape.org/ Inkscape]. A general Bézier curve of any degree can be created with the [[Draft_BezCurve|Draft BezCurve]] command.
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'a w [https://inkscape.org/ Inkscape]. Ogólną krzywą Béziera dowolnego stopnia można utworzyć za pomocą polecenia [[Draft_BezCurve/pl|Krzywa Bezier'a]].


The [[Draft_BezCurve|Draft BezCurve]] and the Draft CubicBezCurve commands use {{Emphasis|control points}} to define the position and curvature of the spline. The [[Draft_BSpline|Draft BSpline]] command, on the other hand, specifies the {{Emphasis|exact points}} through which the curve will pass.
Polecenia [[Draft_BezCurve/pl|Krzywa Bézier'a]] i Sześcienna krzywa Bézier'a używają {{Emphasis|punktów kontrolnych}} do zdefiniowania położenia i krzywizny odcinka krzywej. Z kolei polecenie [[Draft_BSpline/pl|Krzywa złożona]] określa {{Emphasis|dokładne punkty}}, przez które będzie przechodzić krzywa.


[[File:Draft_CubicBezCurve_example.png|500px]]
[[File:Draft_CubicBezCurve_example.png|500px]]
{{Caption|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.}}
{{Caption|Spline consisting of three cubic Bézier segments. The first segment is defined by four points. Subsequent segments reuse two points from the previous segment and therefore require only two additional points.}}


==Usage==
<span id="Usage"></span>
==Użycie==


See also: [[Draft_Tray|Draft Tray]], [[Draft_Snap|Draft Snap]] and [[Draft_Constrain|Draft Constrain]].
Zapoznaj się również z informacjami na stronie: [[Draft_Tray/pl|Tacka narzędziowa]], [[Draft_Snap/pl|Przyciąganie]] oraz [[Draft_Constrain/pl|Wiązania]].


# Polecenie można wywołać na kilka sposobów:
# There are several ways to invoke the command:
#* Press the {{Button|[[Image:Draft_CubicBezCurve.svg|16px]] [[Draft_CubicBezCurve|Draft CubicBezCurve]]}} button.
#* Naciśnij przycisk {{Button|[[Image:Draft_CubicBezCurve.svg|16px]] '''Sześcienna krzywa Béziera'''}}.
#* Select the {{MenuCommand|Drafting → Bézier tools → [[Image:Draft_CubicBezCurve.svg|16px]] Cubic Bézier curve}} option from the menu.
#* Wybierz z menu {{MenuCommand|Kreślenie Narzędzia krzywych Bézier'a → [[Image:Draft_CubicBezCurve.svg|16px]] Sześcienna krzywa Béziera}} .
# The {{MenuCommand|Cubic Bézier curve}} task panel opens. See [[#Options|Options]] for more information.
# Otworzy się panel zadań {{MenuCommand|Sześcienna krzywa Béziera}}. Więcej informacji można znaleźć w sekcji [[#Opcje|Opcje]].
# Nie jest możliwe wprowadzanie punktów za pomocą panelu zadań.
# It is not possible the enter points via the task panel.
# For the following [[Mouse_navigation|Mouse Navigation Models]] a keyboard key must to be held down:
# W przypadku następujących modeli [[Mouse_navigation/pl|Profil nawigacji myszką]] należy przytrzymać klawisz klawiatury:
#* If you are using [[Mouse_navigation#OpenInventor_Navigation|OpenInventor Navigation]] the {{KEY|Ctrl}} key must be held down throughout the command.
#* W przypadku korzystania z profilu [[Mouse_navigation/pl#OpenInventor|OpenInventor]] klawisz {{KEY|Ctrl}} musi być wciśnięty przez cały czas trwania polecenia.
#* If you are using [[Mouse_navigation#Gesture_Navigation|Gesture Navigation]] the {{KEY|Alt}} key must be held down for each click-hold-release sequence, but is also possible to keep this key held down throughout the command.
#* Jeśli korzystasz z profilu [[Mouse_navigation/pl#Gesture|Gesture]], klawisz {{KEY|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.
# Pick the first point in the [[3D_view|3D view]] and hold the mouse button (1), this is the first endpoint.
# Wybierz pierwszy punkt w oknie [[3D_view/pl|widoku 3D]] i przytrzymaj przycisk myszki ''(1)'', jest to pierwszy punkt końcowy.
# Drag the pointer to another point in the [[3D_view|3D view]] and release the mouse button (2), this is the first control point.
# Przeciągnij kursor do innego punktu w oknie [[3D_view/pl|widoku 3D]] i zwolnij przycisk myszki ''(2)'', jest to pierwszy punkt kontrolny.
# Move the pointer to another point in the [[3D_view|3D view]], pick this point and hold the mouse button (3), this is the second endpoint.
# Przesuń kursor do innego punktu w oknie [[3D_view/pl|widoku 3D]], wybierz ten punkt i przytrzymaj przycisk myszki ''(3)'', jest to drugi punkt końcowy.
# Przesuń kursor do innego punktu w oknie [[3D_view/pl|widoku 3D]], aby dostosować końcową krzywiznę segmentu i zwolnij przycisk myszki ''(4)'', jest to drugi punkt kontrolny.
# Move the pointer to another point in the [[3D_view|3D view]] to adjust the final curvature of the segment and release the mouse button (4), this is the second control point.
# Masz teraz jedną krzywą Béziera 3 stopnia.
# You now have one Bézier curve of the 3rd degree.
# Opcjonalnie można powtórzyć proces klikania i przytrzymywania ''(5)'' oraz przeciągania i zwalniania ''(6)'', aby dodać więcej segmentów.
# Optionally repeat the process of clicking and holding (5), and dragging and releasing (6) to add more segments.
# 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.
# Each subsequent segment will use the second endpoint and second control point of the previous segment as its first endpoint and first control point respectively.
# Press {{KEY|Esc}} or the {{Button|Close}} button to finish the command.
# Naciśnij {{KEY|Esc}} lub przycisk {{Button|Zamknij}}, aby zakończyć polecenie.


==Options==
<span id="Options"></span>
==Opcje==


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


== Notes ==
<span id="Notes"></span>
==Uwagi==


* Sześcienną krzywą Béziera środowiska Rysunek Roboczy można edytować za pomocą polecenia [[Draft_Edit/pl|Edycja]].
* A Draft CubicBezCurve can be edited with the [[Draft_Edit|Draft Edit]] command.


<span id="Properties"></span>
==Preferences==
==Właściwości==


See [[Draft_BezCurve#Preferences|Draft BezCurve]].
Zapoznaj się z informacjami na stronie [[Draft_BezCurve/pl#Właściwości|Krzywa Bézier'a]].


<span id="Scripting"></span>
==Properties==
==Tworzenie skryptów==


Zobacz również stronę: [https://freecad.github.io/SourceDoc/ Dokumentacja API generowana automatycznie] oraz [[FreeCAD_Scripting_Basics/pl|Podstawy pisania skryptów dla FreeCAD]].
See [[Draft_BezCurve#Properties|Draft BezCurve]].


Aby uzyskać ogólne informacje, zobacz stronę [[Draft_BezCurve/pl|Krzywa Bézier'a]]. Poprzez przekazanie opcji tworzony jest sześcienna krzywa Bézier'a <code>degree=3</code> to {{incode|makeBezCurve()}}.
==Scripting==


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.
See also: [https://freecad.github.io/SourceDoc/ Autogenerated API documentation] and [[FreeCAD_Scripting_Basics|FreeCAD Scripting Basics]].
* Jeżeli podane są tylko trzy punkty, zamiast tego tworzona jest kwadratowa krzywa Béziera z tylko jednym punktem kontrolnym.

* Jeżeli podane są tylko 2 punkty, tworzona jest liniowa krzywa Béziera, czyli linia prosta.
See [[Draft_BezCurve|Draft BezCurve]] for general information. A cubic Bézier is created by passing the option <code>degree=3</code> to {{incode|makeBezCurve()}}.
* Jeśli podano 5 punktów, pierwsze 4 tworzą sześcienny segment krzywej Béziera, 4. i 5. punkt są używane do utworzenia linii prostej.

* Jeśli podano 6 punktów, pierwsze 4 tworzą sześcienny odcinek krzywej Béziera, 4. i pozostałe dwa punkty są używane do utworzenia kwadratowego odcinka Béziera.
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.
* Jeśli podano 7 punktów, pierwsze 4 tworzą sześcienny odcinek krzywej Béziera, czwarty i pozostałe trzy punkty są używane do utworzenia drugiego sześciennego odcinka krzywej Béziera.
* If only 3 points are given, it creates a quadratic Bézier instead, with only one control point.
* Ogólnie rzecz biorąc, ostatni punkt w grupie czterech jest dzielony z następującymi maksymalnie trzema punktami, aby utworzyć kolejny segment krzywej Béziera.
* If only 2 points are given, it creates a linear Bézier, that is, a straight line.
* Aby uzyskać gładkie krzywe, bez prostych segmentów, liczba punktów powinna wynosić {{incode|3n + 1}} lub {{incode|3n}}, gdzie {{incode|n}} jest liczbą segmentów, dla <code>n >= 1</code>.
* 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 {{incode|3n + 1}} or {{incode|3n}}, where {{incode|n}} is the number of segments, for <code>n >= 1</code>.


[[File:Draft_CubicBezCurve_API_example.png|600px]]
[[File:Draft_CubicBezCurve_API_example.png|600px]]


{{Caption|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.}}
{{Caption|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 kwadratowe lub proste.}}


Przykład:
Example:


{{Code|code=
{{Code|code=
Line 157: Line 158:




{{Docnav
{{Docnav/pl
|[[Draft_BSpline|BSpline]]
|[[Draft_BSpline/pl|Krzywa złożona]]
|[[Draft_BezCurve|BezCurve]]
|[[Draft_BezCurve/pl|Krzywa Bézier'a]]
|[[Draft_Workbench|Draft]]
|[[Draft_Workbench/pl|środowisko pracy Rysunek Roboczy]]
|IconL=Draft_BSpline.svg
|IconL=Draft_BSpline.svg
|IconR=Draft_BezCurve.svg
|IconR=Draft_BezCurve.svg

Latest revision as of 14:59, 11 December 2023

Rysunek Roboczy: Sześcienna krzywa Bézier'a

Lokalizacja w menu
Kreślenie → Narzędzia krzywych Bézier'a → Sześcienna krzywa Bézier'a
Środowisko pracy
Rysunek Roboczy, Architektura
Domyślny skrót
brak
Wprowadzono w wersji
0.19
Zobacz także
Krzywa Bézier'a, Krzywa złożona

Opis

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

Polecenia Krzywa Bézier'a i Sześcienna krzywa Bézier'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'a → 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ą Béziera środowiska Rysunek Roboczy można edytować za pomocą polecenia Edycja.

Właściwości

Zapoznaj się z informacjami na stronie Krzywa Bézier'a.

Tworzenie skryptów

Zobacz również stronę: Dokumentacja API generowana automatycznie oraz Podstawy pisania skryptów dla FreeCAD.

Aby uzyskać ogólne informacje, zobacz stronę Krzywa Bézier'a. Poprzez przekazanie opcji tworzony jest sześcienna krzywa Bézier'a 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.

  • Jeżeli podane są tylko trzy punkty, zamiast tego tworzona jest kwadratowa krzywa Béziera z tylko jednym punktem kontrolnym.
  • Jeżeli podane są tylko 2 punkty, tworzona jest liniowa krzywa Béziera, czyli linia prosta.
  • Jeśli podano 5 punktów, pierwsze 4 tworzą sześcienny segment krzywej Béziera, 4. i 5. punkt są używane do utworzenia linii prostej.
  • Jeśli podano 6 punktów, pierwsze 4 tworzą sześcienny odcinek krzywej Béziera, 4. i pozostałe dwa punkty są używane do utworzenia kwadratowego odcinka Béziera.
  • Jeśli podano 7 punktów, pierwsze 4 tworzą sześcienny odcinek krzywej Béziera, czwarty i pozostałe trzy punkty są używane do utworzenia drugiego sześciennego odcinka krzywej Béziera.
  • Ogólnie rzecz biorąc, ostatni punkt w grupie czterech jest dzielony z następującymi maksymalnie trzema punktami, aby utworzyć kolejny segment krzywej Béziera.
  • Aby uzyskać gładkie krzywe, bez prostych segmentów, liczba punktów powinna wynosić 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()