-
Notifications
You must be signed in to change notification settings - Fork 1
/
Chapter 1.nb
9080 lines (8936 loc) · 505 KB
/
Chapter 1.nb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
(* Content-type: application/vnd.wolfram.mathematica *)
(*** Wolfram Notebook File ***)
(* http://www.wolfram.com/nb *)
(* CreatedBy='Mathematica 11.0' *)
(*CacheID: 234*)
(* Internal cache information:
NotebookFileLineBreakTest
NotebookFileLineBreakTest
NotebookDataPosition[ 158, 7]
NotebookDataLength[ 507820, 9072]
NotebookOptionsPosition[ 499573, 8815]
NotebookOutlinePosition[ 501994, 8885]
CellTagsIndexPosition[ 501371, 8868]
WindowFrame->Normal*)
(* Beginning of Notebook Content *)
Notebook[{
Cell[CellGroupData[{
Cell["\<\
A Mathematica NURBS (Non-Uniform Rational B-Splines) Package and Its \
Applications\
\>", "Title",
CellChangeTimes->{{3.6904681584653187`*^9, 3.690468193587485*^9}, {
3.69046845006565*^9, 3.690468488085848*^9}, 3.690468655392245*^9, {
3.6904758795578346`*^9, 3.69047592720938*^9}, 3.69052486641645*^9}],
Cell["\<\
Author: Liutong Zhou
Columbia University\
\>", "Text",
CellChangeTimes->{{3.6905248846766357`*^9, 3.6905249363737164`*^9}},
TextAlignment->Center],
Cell[CellGroupData[{
Cell["Chapter 1 Curve and Surface Basics", "Chapter",
CellChangeTimes->{{3.6904699770927315`*^9, 3.690470003215278*^9}}],
Cell["\<\
All the customized functions we showed here are included in the package \
\[OpenCurlyDoubleQuote]NURBS\[CloseCurlyDoubleQuote] \
\>", "Text",
CellChangeTimes->{{3.6904800443897247`*^9, 3.690480057307502*^9}, {
3.690518219706091*^9, 3.690518220292602*^9}}],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"Needs", "[", "\"\<NURBS`\>\"", "]"}]], "Input",
CellChangeTimes->{{3.690479471677125*^9, 3.690479479551657*^9}, {
3.690518051690849*^9, 3.6905180524870462`*^9}}],
Cell[BoxData["\<\"Package NURBS.wl By Liutong Zhou, Version 1.0\\nCreated on \
Nov. 25 2016\\nLast Updated on Dec 11 2016\\n\\nUser-accessible \
functions:\\nNDegreePowerBasis,Bernstein, MyBezierCurve, PlotBezierCurve, \
RationalBezierCurve, PlotRationalBezierCurve,BezierSurface,PlotBezierSurface,\
\\nRationalBezierSurface,PlotRationalBezierSurface\\n\\nType ?functionname to \
see usage information\\n\"\>"], "Print",
CellChangeTimes->{3.6905531325723705`*^9}]
}, Open ]],
Cell[CellGroupData[{
Cell["1.2 Power Basis Form of a Curve", "Section",
CellChangeTimes->{{3.690470296252744*^9, 3.6904703042387104`*^9}, {
3.690480006904626*^9, 3.6904800093556147`*^9}}],
Cell["\<\
The n-degree Power Basis Curve is defined by equation (1.6) in the NURBS Book.\
\>", "Text",
CellChangeTimes->{{3.6904800148117895`*^9, 3.6904800280880427`*^9}, {
3.6904801018715563`*^9, 3.6904801889023666`*^9}, 3.6904817365855474`*^9}],
Cell[BoxData[
RowBox[{
RowBox[{
RowBox[{"C",
RowBox[{"(", "u", ")"}]}], "=",
RowBox[{
RowBox[{"(", GridBox[{
{
SubscriptBox["x", "1"], "...",
SubscriptBox["x", "n"]},
{
SubscriptBox["y", "1"], "...",
SubscriptBox["y", "n"]},
{
SubscriptBox["z", "1"], "...",
SubscriptBox["z", "n"]}
}], ")"}], ".",
RowBox[{"(", GridBox[{
{
SuperscriptBox["u", "0"]},
{"\[VerticalEllipsis]"},
{
SuperscriptBox["u", "n"]}
}], ")"}]}]}], ",", " ",
RowBox[{
RowBox[{"for", " ", "0"}], "\[LessEqual]", "u", "\[LessEqual]",
"1"}]}]], "DisplayFormulaNumbered",
CellChangeTimes->{{3.6904817665085263`*^9, 3.690481943412624*^9}, {
3.6904819840805607`*^9, 3.6904820034723034`*^9}},
TextAlignment->Center],
Cell["\<\
Here the NDegreePowerBasis is an implementation of it, this function is \
included in the package \"NURBS\" \
\>", "Text",
CellChangeTimes->{{3.6904800148117895`*^9, 3.6904800280880427`*^9}, {
3.6904801018715563`*^9, 3.6904801889023666`*^9}, 3.690481741432066*^9, {
3.6905245780309105`*^9, 3.690524578525747*^9}}],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"?", "NDegreePowerBasis"}]], "Input",
CellChangeTimes->{{3.690471093384468*^9, 3.690471108134797*^9}, {
3.6904712250240293`*^9, 3.6904712459622593`*^9}, {3.6904770140652003`*^9,
3.690477016667815*^9}, {3.6904772196929827`*^9, 3.6904772557207212`*^9}, {
3.6904773757017465`*^9, 3.690477432205186*^9}, {3.6904774766063805`*^9,
3.6904774844151573`*^9}, {3.6904777222569675`*^9, 3.6904777239141207`*^9},
3.690477890773204*^9, {3.6904780631940346`*^9, 3.690478274002428*^9},
3.6904783706708174`*^9, {3.6904784070818176`*^9, 3.6904784081002502`*^9}, {
3.690478448763657*^9, 3.6904784859374084`*^9}, {3.690478601996394*^9,
3.6904786148671565`*^9}, {3.690478646430231*^9, 3.690478657254059*^9},
3.690479414817247*^9, {3.690479485197545*^9, 3.6904794882623997`*^9}}],
Cell[BoxData[
StyleBox["\<\"NDegreePowerBasis[pts] creates an N Degree Power Basis Curve \
with control points pts.\"\>", "MSG"]], "Print", "PrintUsage",
CellChangeTimes->{3.6905010060311403`*^9},
CellTags->"Info23690483005-5077331"]
}, Open ]],
Cell[CellGroupData[{
Cell[BoxData[{
RowBox[{
RowBox[{"twodpts", ":=",
RowBox[{"RandomReal", "[",
RowBox[{
RowBox[{"{",
RowBox[{
RowBox[{"-", "1"}], ",", "1"}], "}"}], ",",
RowBox[{"{",
RowBox[{"10", ",", "2"}], "}"}]}], "]"}]}], ";", " ",
RowBox[{"(*",
RowBox[{
"generate", " ", "some", " ", "random", " ", "data", " ", "points"}],
"*)"}], "\[IndentingNewLine]",
RowBox[{"threedpts", ":=",
RowBox[{"RandomReal", "[",
RowBox[{
RowBox[{"{",
RowBox[{
RowBox[{"-", "1"}], ",", "1"}], "}"}], ",",
RowBox[{"{",
RowBox[{"10", ",", "3"}], "}"}]}], "]"}]}],
";"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{"{",
RowBox[{
RowBox[{"NDegreePowerBasis", "[", "twodpts", "]"}], ",",
RowBox[{"NDegreePowerBasis", "[", "threedpts", "]"}]}], "}"}],
RowBox[{"(*",
RowBox[{"draw", " ", "the", " ", "curve"}],
"*)"}]}], "\[IndentingNewLine]"}], "Input",
CellChangeTimes->{{3.6904795241161475`*^9, 3.69047969049438*^9}, {
3.6904797295760975`*^9, 3.690479780249711*^9}, {3.6904802062269535`*^9,
3.69048026549609*^9}, {3.6904810627712927`*^9, 3.690481103169217*^9}, {
3.6904811645389795`*^9, 3.6904812627121286`*^9}, {3.690481300742417*^9,
3.690481317953266*^9}, {3.6904813652121773`*^9, 3.6904813774505177`*^9}, {
3.690481457821349*^9, 3.6904815560443788`*^9}}],
Cell[BoxData[
RowBox[{"{",
RowBox[{
GraphicsBox[{{}, {},
TagBox[
{RGBColor[0.368417, 0.506779, 0.709798], AbsoluteThickness[1.6],
Opacity[1.], FaceForm[Opacity[0.3]], LineBox[CompressedData["
1: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
0Qb0+Jel3VvJZaAHxAlqmzag/wO3DnBn
"]]},
Annotation[#, "Charting`Private`Tag$2015#1"]& ]},
AspectRatio->1,
Axes->{True, True},
AxesLabel->{None, None},
AxesOrigin->{0, 0},
DisplayFunction->Identity,
FrameLabel->{{None, None}, {None, None}},
FrameTicks->{{Automatic, Automatic}, {Automatic, Automatic}},
GridLinesStyle->Directive[
GrayLevel[0.5, 0.4]],
Method->{"ScalingFunctions" -> None},
PlotRange->{{-0.9881444059155275,
0.8081291588604498}, {-0.9886271278243681, 0.8432843633701266}},
PlotRangeClipping->True,
PlotRangePadding->{{0, 0}, {0, 0}},
Ticks->{Automatic, Automatic}], ",",
Graphics3DBox[{{}, {},
TagBox[
{RGBColor[0.368417, 0.506779, 0.709798], AbsoluteThickness[2],
Line3DBox[CompressedData["
1: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
cMmmr6Xmezv+B7Pmf2o=
"]]},
Annotation[#, "Charting`Private`Tag$2071#1"]& ]},
AspectRatio->1,
Axes->True,
DisplayFunction->Identity,
FaceGridsStyle->Automatic,
Method->{},
PlotRange->{{-0.9411299186982904,
0.679198586740549}, {-0.7627377252300658,
0.7375376021794833}, {-0.9286722970298227, 0.8419187346846204}},
PlotRangePadding->{Automatic, Automatic, Automatic},
Ticks->{Automatic, Automatic, Automatic}]}], "}"}]], "Output",
CellChangeTimes->{{3.690479758674078*^9, 3.6904797958307295`*^9}, {
3.690480230245591*^9, 3.6904802682338295`*^9}, {3.690480359324942*^9,
3.6904803963368406`*^9}, 3.6904808421518445`*^9, {3.6904810360235586`*^9,
3.690481098701146*^9}, {3.6904811360921803`*^9, 3.690481422824274*^9}, {
3.69048145845042*^9, 3.6904815644118586`*^9}, 3.6904817100739794`*^9, {
3.690482028647173*^9, 3.69048204379185*^9}, 3.6905010062102623`*^9}]
}, Open ]]
}, Open ]],
Cell[CellGroupData[{
Cell["1.3 Bezier Curves", "Section",
CellChangeTimes->{{3.6904703064554625`*^9, 3.690470316641045*^9}}],
Cell["\<\
BezierCurve is an improved version of Power Basis Curve, Mathematica has an \
in-built Function to implement it, but we can also easily implement it by \
ourselves. The nth degree Bezier Curve is defined by\
\>", "Text",
CellChangeTimes->{{3.690481121494539*^9, 3.690481132509326*^9}, {
3.690481351834648*^9, 3.6904813523854265`*^9}, {3.6904813912394123`*^9,
3.690481427207219*^9}, {3.6904821097261543`*^9, 3.690482271727945*^9}, {
3.690485874748898*^9, 3.690485880473136*^9}}],
Cell[BoxData[
RowBox[{
RowBox[{
RowBox[{"C",
RowBox[{"(", "u", ")"}]}], "=",
RowBox[{
UnderoverscriptBox["\[Sum]",
RowBox[{"i", "=", "0"}], "n"],
RowBox[{
RowBox[{"BernsteinBasis", "[",
RowBox[{"n", ",", "i", ",", "u"}], "]"}],
SubscriptBox["P", "i"]}]}]}], " ", ",", " ",
RowBox[{
"0", "\[LessEqual]", "u", "\[LessEqual]", "1"}]}]], "DisplayFormulaNumbered",
CellChangeTimes->{{3.6904822824897623`*^9, 3.690482341726019*^9}, {
3.6904859352020626`*^9, 3.690486002623489*^9}, {3.690486060409916*^9,
3.690486061807931*^9}, {3.6904960668496475`*^9, 3.6904960672499795`*^9}},
TextAlignment->Center],
Cell[TextData[{
"The nth degree BernsteinBasis is nothing but a Binomial Expansion of ",
Cell[BoxData[
FormBox[
SuperscriptBox[
RowBox[{"(",
RowBox[{"1", "-", "u", "+", "u"}], ")"}], "n"], TraditionalForm]],
FormatType->"TraditionalForm"]
}], "Text",
CellChangeTimes->{{3.6904860654319277`*^9, 3.6904860794105883`*^9}, {
3.690486111486201*^9, 3.690486136067177*^9}, {3.690486770954308*^9,
3.6904867727711334`*^9}}],
Cell[BoxData[
RowBox[{
RowBox[{
RowBox[{"BernsteinBasis", "[",
RowBox[{"n", ",", "i", ",", "u"}], "]"}], "=",
RowBox[{
RowBox[{"(", GridBox[{
{"n"},
{"i"}
}], ")"}],
SuperscriptBox["u", "i"],
SuperscriptBox[
RowBox[{"(",
RowBox[{"1", "-", "u"}], ")"}],
RowBox[{"n", "-", "i"}]]}]}], ",", " ",
RowBox[{
"0", "\[LessEqual]", "u", "\[LessEqual]", "1"}]}]], "DisplayFormulaNumbered",
CellChangeTimes->{{3.6904867222450495`*^9, 3.690486815831721*^9}},
TextAlignment->Center],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"?", "BezierCurve"}]], "Input",
CellChangeTimes->{{3.690482117631191*^9, 3.690482147468978*^9}}],
Cell[BoxData[
RowBox[{
StyleBox["\<\"\!\(\*RowBox[{\\\"BezierCurve\\\", \\\"[\\\", RowBox[{\\\"{\\\
\", RowBox[{SubscriptBox[StyleBox[\\\"pt\\\", \\\"TI\\\"], \
StyleBox[\\\"1\\\", \\\"TR\\\"]], \\\",\\\", \
SubscriptBox[StyleBox[\\\"pt\\\", \\\"TI\\\"], StyleBox[\\\"2\\\", \
\\\"TR\\\"]], \\\",\\\", StyleBox[\\\"\[Ellipsis]\\\", \\\"TR\\\"]}], \\\"}\\\
\"}], \\\"]\\\"}]\) is a graphics primitive that represents a B\[EAcute]zier \
curve with control points \!\(\*SubscriptBox[StyleBox[\\\"pt\\\", \
\\\"TI\\\"], StyleBox[\\\"i\\\", \\\"TI\\\"]]\).\"\>", "MSG"],
"\[NonBreakingSpace]",
ButtonBox[
StyleBox["\[RightSkeleton]", "SR"],
Active->True,
BaseStyle->"Link",
ButtonData->"paclet:ref/BezierCurve"]}]], "Print", "PrintUsage",
CellChangeTimes->{3.690501006308288*^9},
CellTags->"Info53690483006-5554349"]
}, Open ]],
Cell[BoxData[
RowBox[{"(*",
RowBox[{
"The", " ", "Mathematica", " ", "Version", " ", "of", " ", "the", " ",
"BezierCurve", " ", "Plot"}], "*)"}]], "Input",
CellChangeTimes->{{3.6904938074175096`*^9, 3.6904938249588385`*^9}}],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"Graphics", "[",
RowBox[{"BezierCurve", "[",
RowBox[{"{",
RowBox[{
RowBox[{"{",
RowBox[{"0", ",", "0"}], "}"}], ",",
RowBox[{"{",
RowBox[{"1", ",", "1"}], "}"}], ",",
RowBox[{"{",
RowBox[{"2", ",", "0"}], "}"}]}], "}"}], "]"}], "]"}]], "Input",
CellChangeTimes->{{3.690493829421753*^9, 3.690493854564065*^9}, {
3.690493885962381*^9, 3.690493935795882*^9}}],
Cell[BoxData[
GraphicsBox[BezierCurveBox[{{0, 0}, {1, 1}, {2, 0}}],
ImageSize->{215.99999999999898`, Automatic}]], "Output",
CellChangeTimes->{3.6904938560343227`*^9, 3.690493889211218*^9,
3.6904939365978518`*^9, 3.6905010063919086`*^9}]
}, Open ]],
Cell["\<\
MyBezierCurve is a function in the package \[OpenCurlyDoubleQuote]NURBS\
\[CloseCurlyDoubleQuote], PlotBezierCurve in the package will plot \
MyBezierCurve\
\>", "Text",
CellChangeTimes->{{3.6904876963099594`*^9, 3.690487721466346*^9}, {
3.690493947127904*^9, 3.69049396528115*^9}, {3.6905245840906887`*^9,
3.6905245846179066`*^9}}],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"?", "Bernstein"}]], "Input",
CellChangeTimes->{{3.690496947439277*^9, 3.6904969526036777`*^9}}],
Cell[BoxData[
StyleBox["\<\"Bernstein[i, n, v] returns the ith term of the n-degree \
Bernstein polynomial basis\"\>", "MSG"]], "Print", "PrintUsage",
CellChangeTimes->{3.690501006524406*^9},
CellTags->"Info83690483006-5554349"]
}, Open ]],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"?", "MyBezierCurve"}]], "Input",
CellChangeTimes->{{3.6904939689625263`*^9, 3.6904939746426754`*^9}}],
Cell[BoxData[
StyleBox["\<\"MyBezierCurve[points,u] Returns the parametric form of the \
BezierCurve definend by the control points\"\>", "MSG"]], "Print", \
"PrintUsage",
CellChangeTimes->{3.690501006695448*^9},
CellTags->"Info93690483006-5554349"]
}, Open ]],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"?", "PlotBezierCurve"}]], "Input",
CellChangeTimes->{{3.6904939780437865`*^9, 3.6904939847185907`*^9}}],
Cell[BoxData[
StyleBox["\<\"PlotBezierCurve[points] plots the BezierCurve defined by the \
control points\"\>", "MSG"]], "Print", "PrintUsage",
CellChangeTimes->{3.6905010068640013`*^9},
CellTags->"Info103690483006-5554349"]
}, Open ]],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"MyBezierCurve", "[",
RowBox[{
RowBox[{"{",
RowBox[{
RowBox[{"{",
RowBox[{"0", ",", "0"}], "}"}], ",",
RowBox[{"{",
RowBox[{"1", ",", "1"}], "}"}], ",",
RowBox[{"{",
RowBox[{"2", ",", "0"}], "}"}]}], "}"}], ",", "u"}], "]"}]], "Input",
CellChangeTimes->{{3.6904940142481594`*^9, 3.6904940183456755`*^9}}],
Cell[BoxData[
RowBox[{"{",
RowBox[{
RowBox[{"2", " ", "u"}], ",",
RowBox[{
RowBox[{"-", "2"}], " ",
RowBox[{"(",
RowBox[{
RowBox[{"-", "1"}], "+", "u"}], ")"}], " ", "u"}]}], "}"}]], "Output",
CellChangeTimes->{3.6904940189489884`*^9, 3.690501007014344*^9}]
}, Open ]],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"PlotBezierCurve", "[",
RowBox[{"{",
RowBox[{
RowBox[{"{",
RowBox[{"0", ",", "0"}], "}"}], ",",
RowBox[{"{",
RowBox[{"1", ",", "1"}], "}"}], ",",
RowBox[{"{",
RowBox[{"2", ",", "0"}], "}"}]}], "}"}], "]"}]], "Input",
CellChangeTimes->{{3.690492378610151*^9, 3.6904923949823246`*^9}, {
3.6904925176964407`*^9, 3.690492521935375*^9}, {3.6904925537529345`*^9,
3.690492555931142*^9}, {3.690493573909657*^9, 3.690493584599385*^9},
3.6904937567492294`*^9}],
Cell[BoxData[
GraphicsBox[{{{}, {},
TagBox[
{RGBColor[0.368417, 0.506779, 0.709798], AbsoluteThickness[1.6], Opacity[
1.], FaceForm[Opacity[0.3]], LineBox[CompressedData["
1:eJxd2Hk4lHvYB3C0KJHlVEKUkqNNqhOnzVfqVLJkS5tokXKKlO0QkUiWJEt7
KnuloqSyS8kSokTiebJkGczzzAzZzfvrenv/eeefuT7XXDO/7b5/9z2P6qGT
5kfERERE5ERFRH69///XoZFZpUEKm+H7xqJUIL8Z/2tL3AqOKLWdZfnbdvgs
L1Gm84fdb7tiy19jZR2Srr8dgMWOrR+2igT8djQE1NOP4h1Rv52AgDfb6oMy
4lFqbiHC8jIQKXqi9+qsDPgMrnq8RSUfr+52WiiuzQVlvPVKUehb3BPGZtz7
8QZa5ZEd1/pK8TjsREin+Xt8TPv3gqhoFWrLvqoXoRxyB53vVa2vwfGFz59o
ba2CSlcps7vnM/Q/pOSU+FXDLNGhNdWxDuu+mpe0LfgEG4/6NsWFDVgUZaI9
VvEZkT6XQiyeNCLN9nqk6sYv0JhwMK54MY0P2kvmiUTXwbhKtO0B9zsyN1g3
v+ioh4LOz5JarRbsNO686CzRgJpFNRnTw1sRqW1r2q/xDeutc7+2tbVB52qZ
7ZaFjchKKTe9p9aO/6yStmT9bISaX2HlMd8OSLhIPnqa2wROq+gFj4AO5Mhe
oW0KmpC2VX/DheAOGN+t9ZIsasJ66aJH8VEdmBoU++NQSRMsY99epJI7wLm4
PGy0pgkBOe/1LT92wNLKRLm1owmtgxWZUO1EgbzvDh8ZCnGnGmJnFXVCfPVj
wQ9rCtEu2iFXSjqxKe6fZFtbChfcIt0kKzuxPn6vV91BCg6e243Evnbi6IHh
s4X2FLTOZQ31cjtx972MmK8zhdyIm5bvFLtw0+AGc/c8hfqneyVcT3fhhZLC
Mc8UCmXpmf1cjy7EiWye9vIhhezncs0OPl0w9Oyu4KdSiH1Z9tL2Yhe+LkxL
t0uncCR/7RHD2C7UHZcRrMiiwK9ULJhf1oV9j5buP11OQYrb4FatysGlwU+V
IT0UxpcqfVn5Jwd9odKS57kUuMf3aUcv5aB9p4qXJ0uhsuvbTysdDo5fetF5
oI9CxI9Gj0YjDvpDyqQVRynMaKI8Ozw4mFoQHrh6Gg2lDy0+YxUcrJDzk5bV
oCE5bQFl84kDxn3+0apFNEYNDusW1HOgI3edCV1Co/F967h/Kwf2PaORQk0a
sUVtvlOGOPhn+eMF1atpzM9uP/eHWjcmMsknlDfRWPSQE7jIqxv+VpPv7LWm
4e/mckbTtxvej6yl3u2n0aA36rwqoBteotc5y2xphNVJWW8I70ZgWm738EEa
zMQVK83iulGt+G6K/1EaL2w9qP/KurF13tvHm0/T2Dhzok6JYg/ucP3jb12g
cfN72NKKuT3QsPNM+xREg/9o5vwatR68brBcLBFMI0H/T6lGzR50lmXZnQ6l
Ie68vZXR74H3S/2+5RE0KsoiLssf70FAof5Z2xs09vgpd9pn92Dk+gTdiIc0
qK5C2fqCHuS6dDY9ekTjkIX9OoPiHszr5se/S6Xxr/rT8CXVPXjz9L84wRMa
3h/0VrPtPfCN2Oqw5jmNe7Pt/D3letHwlK98IpuGmv+UVI58LyItV8z7N4fG
g+7U2n3KveiOidlmn0vjWV6/hq5GL/7jVk7bk0/jrV1QlZhuL6YNTLTWKKLR
kfZwTphDL+Tszy5wKqNxQnHHljGnXhR+nnXRpJwGe15w0sm1F9LfP8st+0Bj
0Gp9kalvL4I+FN5sq6AhMVbhMDOmF7xRG9cN1TQ0DXiZsQW9SMpOMrlaR8Ot
WccsXZ6LqLTjd9tayHrr1GSK53ARfzq25WwrDZMK2aoGVS7shvMuyrfR0Hjd
bTRxKRd9e0vHNv2g8S3i7rZdelzsODAhNLiDnJeeuN7YMS76z0iufN9NxtPu
G5d14mL8ulLC1h4aikubc9VduHh9ZrZnMXGffPY6Ux8u1kd+M8zvpZHMOOnE
X+Hi7ISg6DsMDam7XzQNsrjg/zz9TFJAYzi6qHd/Pvl9JxsLF+L2kLTU02+5
eJCqs6ueuMA9ZPHtSi5UPZ8H3emj4WKiq860cGFg9TF0xk8aBzYv+TGhk4vy
kUWbnYiN1s5OmN3Lxaj9KdtiYnV1vqr+ABeO4aV5pwZofB1LVI6ZxiBU9e68
F4M0igWRjQ9kGFzss2dFh8j5dfneypvJQPvSnAXGxGG1exQ65zK4J22WThHj
sdTMdX8xSNtNO3OHaSyNH/60Yw2DpXtm7tYcoTH7RkeknS4Dq7lr4k4Q8wMK
ZcK3McgeNbBtI060dpNstmaQPxLhXTBKI+LyFr3Ggww6SmrO8om938i71tkz
mFYk1zd/jIalRta3CmcG/+he0vEl1tsXKl3qxmBf/vtJj4iXhFtveuvF4F9H
ka21xGJ94w+zAhj4mJ6Yv3CcBlf9I/UimIFv4N2c7cRf99yXSw8nn3d8LHUi
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
"]]},
Annotation[#, "Charting`Private`Tag$7067#1"]& ]}, {{}, {{}, {},
{RGBColor[0.368417, 0.506779, 0.709798], PointSize[
0.012833333333333334`], AbsoluteThickness[1.6],
LineBox[{{0., 0.}, {1., 1.}, {2., 0.}}]}}, {}, {}, {{}, {}}}, {{}, {{},
{RGBColor[0.368417, 0.506779, 0.709798], PointSize[0.02],
AbsoluteThickness[1.6],
PointBox[{{0., 0.}, {1., 1.}, {2., 0.}}]}, {}}, {}, {}, {{}, {}}}},
Axes->{True, True},
AxesLabel->{None, None},
AxesOrigin->{0, 0},
DisplayFunction->Identity,
FrameLabel->{{None, None}, {None, None}},
FrameTicks->{{Automatic, Automatic}, {Automatic, Automatic}},
GridLinesStyle->Directive[
GrayLevel[0.5, 0.4]],
ImageSize->{234.39999999999978`, Automatic},
Method->{"ScalingFunctions" -> None},
PlotRange->{All, All},
PlotRangeClipping->True,
PlotRangePadding->{{
Scaled[0.05],
Scaled[0.05]}, {
Scaled[0.05],
Scaled[0.05]}},
Ticks->{Automatic, Automatic}]], "Output",
CellChangeTimes->{
3.6904923953408103`*^9, 3.6904924507112713`*^9, 3.690492522244824*^9,
3.690492556456997*^9, 3.6904926512511883`*^9, 3.6904926902364473`*^9,
3.6904930931485066`*^9, {3.6904935594501514`*^9, 3.690493585744259*^9},
3.690493757090011*^9, 3.690501007165861*^9}]
}, Open ]],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"PlotBezierCurve", "[",
RowBox[{"{",
RowBox[{
RowBox[{"{",
RowBox[{"0", ",", "0", ",", "1"}], "}"}], ",",
RowBox[{"{",
RowBox[{"1", ",", "1", ",", "0"}], "}"}], ",",
RowBox[{"{",
RowBox[{"2", ",", "0", ",", "1"}], "}"}], ",",
RowBox[{"{",
RowBox[{"1", ",", "2", ",", "3"}], "}"}]}], "}"}], "]"}]], "Input",
CellChangeTimes->{{3.690492378610151*^9, 3.6904923949823246`*^9}, {
3.6904925176964407`*^9, 3.690492521935375*^9}, {3.6904925537529345`*^9,
3.690492555931142*^9}, {3.690493573909657*^9, 3.690493578826251*^9}}],
Cell[BoxData[
Graphics3DBox[{{{}, {},
TagBox[
{RGBColor[0.368417, 0.506779, 0.709798], AbsoluteThickness[2],
Line3DBox[CompressedData["
1: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
VCt/KSEhLtr+/3+WAJ6lKRyBgET+H/VIrKA=
"]]},
Annotation[#, "Charting`Private`Tag$7220#1"]& ]},
Line3DBox[{{0, 0, 1}, {1, 1, 0}, {2, 0, 1}, {1, 2, 3}}], {
{PointSize[0.02], Point3DBox[{0, 0, 1}]},
{PointSize[0.02], Point3DBox[{1, 1, 0}]},
{PointSize[0.02], Point3DBox[{2, 0, 1}]},
{PointSize[0.02], Point3DBox[{1, 2, 3}]}}},
Axes->True,
DisplayFunction->Identity,
FaceGridsStyle->Automatic,
ImageSize->{172.7939925508498, 263.2},
Method->{},
PlotRange->{All, All, All},
PlotRangePadding->{Automatic, Automatic, Automatic},
Ticks->{Automatic, Automatic, Automatic},
ViewPoint->{0.550755402251568, -2.8927199579402187`, 1.6669852224375146`},
ViewVertical->{0.17989348834543625`, -0.14897579447287318`,
0.987802172167436}]], "Output",
CellChangeTimes->{3.690493762423572*^9, 3.690501007208316*^9}]
}, Open ]],
Cell["\<\
You can also generate the same graphs using the built-in functions.
Now lets try a closed BezierCurve\
\>", "Text",
CellChangeTimes->{{3.6904940338701344`*^9, 3.6904940790613327`*^9}, {
3.690494168079213*^9, 3.6904941896837473`*^9}}],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"PlotBezierCurve", "[",
RowBox[{"{",
RowBox[{
RowBox[{"{",
RowBox[{"0", ",", "0"}], "}"}], ",",
RowBox[{"{",
RowBox[{"0", ",", "1"}], "}"}], ",",
RowBox[{"{",
RowBox[{"1", ",", "1"}], "}"}], ",",
RowBox[{"{",
RowBox[{"1", ",", "0"}], "}"}], ",",
RowBox[{"{",
RowBox[{"0", ",", "0"}], "}"}]}], "}"}], "]"}]], "Input",
CellChangeTimes->{{3.690494191130268*^9, 3.6904942424906693`*^9}}],
Cell[BoxData[
GraphicsBox[{{{}, {},
TagBox[
{RGBColor[0.368417, 0.506779, 0.709798], AbsoluteThickness[1.6], Opacity[
1.], FaceForm[Opacity[0.3]], LineBox[CompressedData["
1:eJxd2nk4VG8fBvDSHkVkS0kkFZW0SbiTkpJEEVEiJERIRYosSciuZClLZN8r
SyL7kuyMmTHMFkW08Eub9+nf1x9cn2vmOueYc57vc98X6yydDKx55syZ00K+
/fv5/1/zsrSz535OVu+2cm3aJHoK5hu6Di0ce6s+pdXX1LLSCjvNi/SPHe5R
fy7nlJcq4QiJoJxi/hGm+tTprmZ+gauYszBe1DtgXF1NxERdcoU7KIJJSfH7
p9TLLtsV/hG4jWBZ0Xj1j7/Vhfc9EuoLuIM0vht3ZIZ48INxue3hQj8sUCt0
kR9eBOHNnUuq/e7ibZVgzqIby6A7wK4z4AlE86E+84OdK0C53MSj6xWEZVez
ErFDGEcl06vyfoVgpPzYIH1QDDVXur1e7wuDn/iQ/aKe1fhQ/Nf8tHs4fk5c
6DveLg0BqRfM9G+R2Bwy6DuuIoutJ276n1OMRsPCbx7JzXKY/W5yqckhBrV6
7dNrTbagTmXkezn7EbpXOduNyCtia+9gvKbUY/gJChgXv96ObVTPu16mcZCQ
9FwWKrYLb5L1167sSIDsyswFEcO7IaE/2ObA+wQ7u7bRJyuUYShlPlQh/RSr
bOXCMjNV4SKzerexWRIy9jy8Wpx/AA1SQ66N71LALJAcNBjUhET82766S6nw
o2inLBI+hFcX0s8mLHiGdNVJj+cJh6ExNvV+QDUN9V1BC9wkdOFdqWsQmvEc
xd13J13Dj8PlM7Pp7MEMlJ9cSFFefALN1AdWCxkZGFU7/ic3Sh99nPp5XKEs
tAksqzzJOoVT9ds+D97MgZUWr4fsW0M024z53BbOBT11H9fumRF2/uJX/ZGb
i//4h78ddTdGKeXQao/hPLQ9Cfq028gMb/sGWk2lCyDVYn+13NkSDhvmUPl8
inBx5bE1AwIX0PR77M6S7iK4Co0U3yu8gNfmAZ8mZIuhoDs5E/7HCtZPLRZ5
NBXjyPEVLJXCi+j6K27jy/8CIwveFYlEX8aOaDmO3cNXKAgMEaozc0Tr4tTm
eSOvkH6/P/z7BifQtgW73VUuhaCQXfwliyt4WmK9+gilFG7HNuaq8LngVlBr