Draft CubicBezCurve/it: Difference between revisions

From FreeCAD Documentation
(Created page with "Gli strumenti Curva di Bézier e Curva di Bézier cubica utilizzano i {{Emphasis|punti di controllo}} per definire la direzion...")
No edit summary
 
(77 intermediate revisions by 4 users not shown)
Line 1: Line 1:
<languages/>
<languages/>
{{UnfinishedDocu}}

{{Docnav/it|[[Draft_Facebinder/it|Lega facce]]|[[Draft_Label/it|Etichetta]]|[[Draft_Module/it|Draft]]|IconL=Draft_Facebinder.svg |IconC=Workbench_Draft.svg|IconR=Draft_Label.svg }}


{{Docnav/it
|[[Draft_BSpline/it|BSpline]]
|[[Draft_BezCurve/it|Curva di Bézier]]
|[[Draft_Workbench|Draft/it]]
|IconL=Draft_BSpline.svg
|IconR=Draft_BezCurve.svg
|IconC=Workbench_Draft.svg
}}


{{GuiCommand/it
{{GuiCommand/it
|Name=Draft CubicBezCurve
|Name=Draft CubicBezCurve
|Name/it=Curva di Bézier cubica
|Name/it=Curva di Bézier cubica
|MenuLocation=Drafting → Strumenti Bezier → Curva di Bézier cubica
|Workbenches=[[Draft Module/it|Draft]], [[Arch Module/it|Arch]]
|Workbenches=[[Draft_Workbench/it|Draft]], [[Arch_Workbench/it|Arch]]
|MenuLocation=Draft → Strumenti Bezier → Curva di Bézier cubica
|Version/it=0.19
|Shortcut=
|SeeAlso=[[Draft Wire/it|Polilinea]], [[Draft BSpline/it|B-spline]], [[Draft BezCurve/it|Curva di Bézier]]
|SeeAlso=[[Draft BezCurve/it|Curva di Bézier]], [[Draft BSpline/it|BSpline]]
}}
|Version/it=0.19}}


<span id="Description"></span>
==Descrizione==
==Descrizione==


Lo strumento [[Draft CubicBezCurve/it|Curva di Bézier cubica]] crea una[http://en.wikipedia.org/wiki/Bezier_curve Curva di Bézier] di terzo grado. Questa è una delle curve di Bezier più usate. Questo strumento consente di creare una grande spline composta da diversi segmenti Bezier di 3° grado, in un modo simile allo strumento Bezier in Inkscape. Una curva di Bezier di qualsiasi grado può essere creata con lo strumento [[Draft BezCurve/it|Curva di Bézier]].
Il comando [[Image:Draft_CubicBezCurve.svg|24px]] '''Curva di Bézier cubica''' crea una [http://en.wikipedia.org/wiki/Bezier_curve curva di Bézier] di terzo grado (quattro punti richiesti).

La curva di Bézier è una delle curve più utilizzate nella computer grafica. Questo comando consente di creare una spline continua composta da diversi segmenti Bézier di 3° grado, in modo simile allo strumento Bézier in [https://inkscape.org/Inkscape]. Una curva di Bézier generale di qualsiasi grado può essere creata con il comando [[Draft_BezCurve/it|Curva di Bézier]].

I comandi [[Draft_BezCurve/it|Curva di Bézier]] e Curva di Bézier cubica utilizzano {{Emphasis|punti di controllo}} per definire la posizione e la curvatura della spline. Il comando [[Draft_BSpline/it|BSpline]], invece, specifica i {{Emphasis|punti esatti}} attraverso i quali passerà la curva.

[[File:Draft_CubicBezCurve_example.png|500px]]
{{Caption|Spline composta da tre segmenti cubici di Bézier. Il primo segmento è definito da quattro punti. I segmenti successivi riutilizzano due punti del segmento precedente e pertanto richiedono solo due punti aggiuntivi.}}

<span id="Usage"></span>
== Utilizzo ==

Vedere anche: [[Draft_Tray/it|Barra di Draft]], [[Draft_Snap/it|Aggancio]] e [[Draft_Constrain/it|Vincolare]].

# Esistono diversi modi per invocare il comando:
#* Premere il pulsante {{Button|[[Image:Draft_CubicBezCurve.svg|16px]] [[Draft_CubicBezCurve|Curva di Bézier cubica]]}}.
#* Selezionare l'opzione {{MenuCommand|Drafting → Strumenti Bézier → [[Image:Draft_CubicBezCurve.svg|16px]] Curva di Bézier cubica}} dal menu.
# Si apre il pannello delle attività {{MenuCommand|Curva di Bézier cubica}}. Vedere [[#Options|Opzioni]] per maggiori informazioni.
# Non è possibile inserire i punti tramite il pannello delle attività.
# Per i seguenti [[Mouse_navigation/it|Modelli di navigazione con mouse]] è necessario tenere premuto un tasto della tastiera:
#* Se si sta utilizzando [[Mouse_navigation/it#Navigazione OpenInventor|Navigazione OpenInventor]], il tasto {{KEY|Ctrl}} deve essere tenuto premuto per tutta la durata del comando.
#* Se si sta utilizzando [[Mouse_navigation/it#Navigazione Gesture|Navigazione Gesture]] il tasto {{KEY|Alt}} deve essere tenuto premuto per ogni sequenza click-hold-release, ma è anche possibile tenere premuto questo tasto per tutta la durata del comando.
# Selezionare il primo punto nella [[3D_view/it|Vista 3D]] e tenere premuto il pulsante del mouse (1), questo è il primo punto finale.
# Trascinare il puntatore su un altro punto nella [[3D_view/it|Vista 3D]] e rilasciare il pulsante del mouse (2), questo è il primo punto di controllo.
# Spostare il puntatore su un altro punto nella [[3D_view/it|Vista 3D]], selezionare questo punto e tenere premuto il pulsante del mouse (3), questo è il secondo punto finale.
# Spostare il puntatore su un altro punto nella [[3D_view/it|Vista 3D]] per regolare la curvatura finale del segmento e rilasciare il pulsante del mouse (4), questo è il secondo punto di controllo.
# Ora si ha una curva di Bézier di 3° grado.
# Facoltativamente ripetere il processo di clic e tenere premuto (5) e trascinare e rilasciare (6) per aggiungere più segmenti.
# Ogni segmento successivo utilizzerà rispettivamente il secondo punto finale e il secondo punto di controllo del segmento precedente come primo punto finale e primo punto di controllo.
# Premere {{KEY|Esc}} o il pulsante {{Button|Chiudi}} per terminare il comando.

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

Vedere [[Draft_BezCurve/it#Options|Curva di Bézier]].

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

* Una Curva di Bézier cubica può essere modificata con il comando [[Draft_Edit/it|Modifica]].

<span id="Properties"></span>
== Proprietà ==

Vedere [[Draft_BezCurve/it#Properietà|Curva di Bézier]].

<span id="Scripting"></span>
== Script ==

Vedere anche: [https://freecad.github.io/SourceDoc/ Autogenerated API documentation] e [[FreeCAD_Scripting_Basics/it|Script di base per FreeCAD]].

Per informazioni di carattere generale vedere [[Draft_BezCurve/it|Curva di Bézier]]. Una Bézier cubica viene creata passando l'opzione <code>degree=3</code> a {{incode|makeBezCurve()}}.

Per ogni segmento di Bézier cubica devono essere utilizzati quattro punti, di cui i due punti estremi indicano dove passa la spline e i due punti intermedi sono punti di controllo.
* Se vengono assegnati solo 3 punti, viene invece creata una Bézier quadratica, con un solo punto di controllo..
* Se vengono assegnati solo 2 punti, viene creata una Bézier lineare, ovvero una linea retta.
* Se vengono assegnati 5 punti, i primi 4 creano un segmento di Béezier cubico; il quarto e il quinto punto vengono utilizzati per creare una linea retta.
* Se vengono assegnati 6 punti, i primi 4 creano un segmento cubico di Bézier; il quarto e gli altri due punti vengono utilizzati per creare un segmento quadratico di Bézier.
* Se vengono assegnati 7 punti, i primi 4 creano un segmento cubico di Bézier; il quarto e gli altri tre punti sono usati per creare un secondo segmento cubico di Bézier.
* In generale, l'ultimo punto in un gruppo di quattro è condiviso al massimo con i seguenti tre punti per creare un altro segmento di Bézier.
* * Per avere curve morbide, senza segmenti diritti, il numero di punti dovrebbe essere {{incode|3n + 1}} o {{incode|3n}}, dove {{incode|n}} è il numero di segmenti, per <code>n >= 1</code>.

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

{{Caption|Esempi di curve di Bézier prodotte utilizzando 2, 3, 4, 5, 6, 7 e 8 punti. Le linee continue indicano segmenti cubici di Bézier; le altre linee sono quadratiche o lineari.}}

Esempio:

{{Code|code=
import FreeCAD as App
import Draft


doc = App.newDocument()
Gli strumenti [[Draft BezCurve/it|Curva di Bézier]] e [[Draft CubicBezCurve/it|Curva di Bézier cubica]] utilizzano i {{Emphasis|punti di controllo}} per definire la direzione della curva; invece lo strumento [[Draft BSpline/it|B-spline]] specifica i punti esatti attraverso i quali passa la curva.


p1 = App.Vector(-3500, 0, 0)
[[Image:Draft_CubicBezCurve_Example.png|400px]]
p2 = App.Vector(-3000, 2000, 0)
p3 = App.Vector(-1100, 2000, 0)
p4 = App.Vector(0, 0, 0)


p5 = App.Vector(1500, -2000, 0)
{{Caption|Cubic Bezier curve defined by three control points}}
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)
==How to use==
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()
# Press the {{Button|[[Image:Draft_CubicBezCurve.svg|16px]] [[Draft CubicBezCurve|Draft CubicBezCurve]]}} button.
# Click a first point on the 3D view, and hold the mouse pointer.
# Drag the pointer to another point on the 3D view, and release the pointer.
# Move the pointer to another point on the 3D view to adjust the curvature of the spline, and click and hold on the point.
# Move the pointer to another point on the 3D view to adjust the final curvature of the spline, and then release the pointer. This creates a Bezier curve of 3rd degree, and continues drawing from the last point.
# Repeat the process of clicking, holding, dragging, and releasing to add points, and create further 3rd-degree Bezier segments.
# Press {{KEY|Esc}} or the {{Button|Close}} button, to complete the edition.


B1 = Draft.make_bezcurve([p1, p2], degree=3)
==Options==
B1.Label = "B_lin"
B1.ViewObject.DrawStyle = "Dashed"


B2 = Draft.make_bezcurve([p1, p2, p3], degree=3)
==Properties==
B2.Label = "B_quad"
B2.ViewObject.DrawStyle = "Dotted"


B3 = Draft.make_bezcurve([p1, p2, p3, p4], degree=3)
=== Data ===
B3.Label = "B_cub"
B3.ViewObject.LineWidth = 4


B4 = Draft.make_bezcurve([p1, p2, p3, p4, p5], degree=3)
=== View ===
B4.Label = "B_cub+lin"
B4.ViewObject.DrawStyle = "Dashed"


B5 = Draft.make_bezcurve([p1, p2, p3, p4, p5, p6], degree=3)
==Scripting==
B5.Label = "B_cub+quad"
{{Emphasis|See also:}} [[Draft API]] and [[FreeCAD Scripting Basics]].
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)
{{Docnav/it|[[Draft_Facebinder/it|Lega facce]]|[[Draft_Label/it|Etichetta]]|[[Draft_Module/it|Draft]]|IconL=Draft_Facebinder.svg |IconC=Workbench_Draft.svg|IconR=Draft_Label.svg }}
B7.Label = "B_cub+cub+lin"
B7.ViewObject.DrawStyle = "Dashed"


doc.recompute()
}}


{{Draft Tools navi/it}}


{{Docnav/it
|[[Draft_BSpline/it|BSpline]]
|[[Draft_BezCurve/it|Curva di Bézier]]
|[[Draft_Workbench|Draft/it]]
|IconL=Draft_BSpline.svg
|IconR=Draft_BezCurve.svg
|IconC=Workbench_Draft.svg
}}


{{Draft Tools navi{{#translation:}}}}
{{Userdocnavi/it}}
{{Userdocnavi{{#translation:}}}}
{{clear}}

Latest revision as of 15:40, 8 December 2023

Curva di Bézier cubica

Posizione nel menu
Drafting → Strumenti Bezier → Curva di Bézier cubica
Ambiente
Draft, Arch
Avvio veloce
Nessuno
Introdotto nella versione
-
Vedere anche
Curva di Bézier, BSpline

Descrizione

Il comando Curva di Bézier cubica crea una curva di Bézier di terzo grado (quattro punti richiesti).

La curva di Bézier è una delle curve più utilizzate nella computer grafica. Questo comando consente di creare una spline continua composta da diversi segmenti Bézier di 3° grado, in modo simile allo strumento Bézier in [1]. Una curva di Bézier generale di qualsiasi grado può essere creata con il comando Curva di Bézier.

I comandi Curva di Bézier e Curva di Bézier cubica utilizzano punti di controllo per definire la posizione e la curvatura della spline. Il comando BSpline, invece, specifica i punti esatti attraverso i quali passerà la curva.

Spline composta da tre segmenti cubici di Bézier. Il primo segmento è definito da quattro punti. I segmenti successivi riutilizzano due punti del segmento precedente e pertanto richiedono solo due punti aggiuntivi.

Utilizzo

Vedere anche: Barra di Draft, Aggancio e Vincolare.

  1. Esistono diversi modi per invocare il comando:
    • Premere il pulsante Curva di Bézier cubica.
    • Selezionare l'opzione Drafting → Strumenti Bézier → Curva di Bézier cubica dal menu.
  2. Si apre il pannello delle attività Curva di Bézier cubica. Vedere Opzioni per maggiori informazioni.
  3. Non è possibile inserire i punti tramite il pannello delle attività.
  4. Per i seguenti Modelli di navigazione con mouse è necessario tenere premuto un tasto della tastiera:
    • Se si sta utilizzando Navigazione OpenInventor, il tasto Ctrl deve essere tenuto premuto per tutta la durata del comando.
    • Se si sta utilizzando Navigazione Gesture il tasto Alt deve essere tenuto premuto per ogni sequenza click-hold-release, ma è anche possibile tenere premuto questo tasto per tutta la durata del comando.
  5. Selezionare il primo punto nella Vista 3D e tenere premuto il pulsante del mouse (1), questo è il primo punto finale.
  6. Trascinare il puntatore su un altro punto nella Vista 3D e rilasciare il pulsante del mouse (2), questo è il primo punto di controllo.
  7. Spostare il puntatore su un altro punto nella Vista 3D, selezionare questo punto e tenere premuto il pulsante del mouse (3), questo è il secondo punto finale.
  8. Spostare il puntatore su un altro punto nella Vista 3D per regolare la curvatura finale del segmento e rilasciare il pulsante del mouse (4), questo è il secondo punto di controllo.
  9. Ora si ha una curva di Bézier di 3° grado.
  10. Facoltativamente ripetere il processo di clic e tenere premuto (5) e trascinare e rilasciare (6) per aggiungere più segmenti.
  11. Ogni segmento successivo utilizzerà rispettivamente il secondo punto finale e il secondo punto di controllo del segmento precedente come primo punto finale e primo punto di controllo.
  12. Premere Esc o il pulsante Chiudi per terminare il comando.

Opzioni

Vedere Curva di Bézier.

Note

  • Una Curva di Bézier cubica può essere modificata con il comando Modifica.

Proprietà

Vedere Curva di Bézier.

Script

Vedere anche: Autogenerated API documentation e Script di base per FreeCAD.

Per informazioni di carattere generale vedere Curva di Bézier. Una Bézier cubica viene creata passando l'opzione degree=3 a makeBezCurve().

Per ogni segmento di Bézier cubica devono essere utilizzati quattro punti, di cui i due punti estremi indicano dove passa la spline e i due punti intermedi sono punti di controllo.

  • Se vengono assegnati solo 3 punti, viene invece creata una Bézier quadratica, con un solo punto di controllo..
  • Se vengono assegnati solo 2 punti, viene creata una Bézier lineare, ovvero una linea retta.
  • Se vengono assegnati 5 punti, i primi 4 creano un segmento di Béezier cubico; il quarto e il quinto punto vengono utilizzati per creare una linea retta.
  • Se vengono assegnati 6 punti, i primi 4 creano un segmento cubico di Bézier; il quarto e gli altri due punti vengono utilizzati per creare un segmento quadratico di Bézier.
  • Se vengono assegnati 7 punti, i primi 4 creano un segmento cubico di Bézier; il quarto e gli altri tre punti sono usati per creare un secondo segmento cubico di Bézier.
  • In generale, l'ultimo punto in un gruppo di quattro è condiviso al massimo con i seguenti tre punti per creare un altro segmento di Bézier.
  • * Per avere curve morbide, senza segmenti diritti, il numero di punti dovrebbe essere 3n + 1 o 3n, dove n è il numero di segmenti, per n >= 1.

Esempi di curve di Bézier prodotte utilizzando 2, 3, 4, 5, 6, 7 e 8 punti. Le linee continue indicano segmenti cubici di Bézier; le altre linee sono quadratiche o lineari.

Esempio:

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