momente şi schiţe de informatică şi matematică
To attain knowledge, write. To attain wisdom, rewrite.

"A fi sau a nu fi" parabolă, focar, ...

MetaPost | cubice Bézier | limbajul R | parabolă
2019 aug

$\boldsymbol{z(t)=at^2+bt+c},\,t\in\mathbb{R}$ unde $a,b,c\boldsymbol{\in\mathbb{C}}$ sunt afixe de puncte necoliniare, $a\ne 0$ şi $\frac{b}{a}\not\in\mathbb{R}$, reprezintă o parabolă nedegenerată; axa acesteia are direcţia $\arg a$, iar tangenta în punctul de afix $c$ are direcţia $\arg b$. Afixul focarului este $\boldsymbol{f=\frac{-\Delta}{4a}}$, unde $\Delta=b^2-4ac$.

Elementele parabolei se exprimă prin $\boldsymbol{f}$ (rezultând anumite proprietăţi ale focarului), prin $\boldsymbol{z'(t)=2at+b}$ şi prin valoarea $\boldsymbol{\delta=\frac{b}{a}-\frac{\overline{b}}{\overline{a}}}\in \boldsymbol{i}\mathbb{R}^*$:

afixul vârfului parabolei este $\boldsymbol{v=f+\frac{a}{16}\,\delta}$ (şi avem $v=\boldsymbol{z(}-\frac{1}{4}(\frac{b}{a}+\frac{\overline{b}}{\overline{a}})\boldsymbol{)}$).

tangenta în vârf are ecuaţia $\boldsymbol{z=f+\frac{1}{8}\,\delta\,z'(t)},\,t\in\mathbb{R}$; aceasta exprimă, pentru fiecare valoare a parametrului $t$, proiecţia focarului pe tangenta la parabolă în punctul $z(t)$ (însemnând că proiecţiile focarului pe tangente sunt situate pe tangenta în vârf).

De la arcul de parabolă -- la cubicele Bézier

MetaPost | PostScript | cubice Bézier | parabolă
2019 aug

De la o metodă generală de generare a conicelor dată de Steiner, se deduce o exprimare parametrică a punctelor unui arc de parabolă şi se observă că aceasta reprezintă de fapt, o curbă Bézier pătratică; expresia respectivă este extinsă apoi la o cubică Bézier – creând posibilitatea de a trasa arce de parabolă prin câte o singură instrucţiune, prin operatorul curveto în PostScript, sau "path_join" (..) în MetaPost.

Următoarea frază (îndelung documentată şi "muncită") sintetizează istoria curbelor Bézier:

John Warnock — cu mult timp înainte de a înfiinţa Adobe Systems şi de a şi crea prin 1982, limbajul PostScript — şi Donald Knuth — fondatorul tipografiei digitale, prin sistemul TeX şi limbajul MetaFont, lansate prin 1978 — au avut ideea de a folosi curbele Bézier (cele cubice) pentru a descrie contururile grafice ale caracterelor; curbele Bézier apăruseră prin 1960 – graţie lui Pierre Bézier şi Paul de Casteljau – ca instrument matematic (constituit plecând de la polinoamele Bernstein) pentru descrierea profilelor specifice industriei automobilelor.

Un eseu de programare, cu PostScript

MetaPost | PostScript | cardioidă | cubice Bézier
2019 jul

Reprezentarea semicardioidei prin 6 cubice Bézier

MetaPost | PostScript | cardioidă | cubice Bézier
2019 jun

Care este (sau, cum determinăm) numărul minim de instrucţiuni curveto (cubice Bézier) pentru a reprezenta o curbă indicată?

curveto din PostScript vizează o anumită cubică Bézier (pentru care trebuie indicate capetele şi punctele de control); în MetaPost calculul punctelor de control este implicit (şi foarte elaborat), cerându-se doar capetele arcului şi eventual, direcţia tangentei (la intrare sau/şi la ieşire) într-un capăt sau altul; el este implicit fiindcă nu se vizează cubica Bézier ca atare (cum face curveto din PostScript), ci totdeauna, un contur format eventual (prin "path_join") din mai multe cubice Bézier înlănţuite ("înlănţuirea" netedă a acestora necesită corelarea tangentelor în capete).

Aspecte de programare în PostScript - partea a şaptea

PostScript | cardioidă | cubice Bézier
2019 jun

PostScript conturează literele folosind secvenţe de instrucţiuni curveto; în treacăt fie zis - şi noi facem la fel în clasa întâia: desenăm literele cu "bastonaşe" şi arce de legătură (angajând intuitiv şi anumite "puncte de control"). Să vedem şi cum am putea folosi cubice Bézier pentru a contura o curbă sau alta, plecând de la ecuaţiile acesteia; subliniem că nu graficul ca atare, ne interesează (că atunci, l-am obţine fără bătaie de cap folosind R, sau vreun alt pachet de grafică); vrem să vedem cum ajungem la un program care să ne contureze curba respectivă, cât se poate de exact şi cu cât mai puţine instrucţiuni curveto.


Prev
Next
ALL (348 titluri)

vezi Cărţile mele (de programare)

despre acesta ~ Home
(sau https://vlad.bazon.net/

Factoriale | Graficul funcţiilor

PGN browser | chess JS engine

Load

in /slightchess

/slightchess

626 partide analizate cu Crafty

(R) Computer Art | Decoraţiuni

Aplicaţii şcolare (javaScript)

Sinteze: