Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

i have some issues with parse_path method #87

Closed
jeanjakeunuk opened this issue May 28, 2022 · 1 comment
Closed

i have some issues with parse_path method #87

jeanjakeunuk opened this issue May 28, 2022 · 1 comment
Labels

Comments

@jeanjakeunuk
Copy link

i'm using svg.path for graph analysis
i'm trying to find out the bigger curve but i don't understand meaning of control1 control2 and why their is an factor 'j'
that my output result :
Move(to=100j)
CubicBezier(start=100j, control1=(1+85.9j), control2=(2+32j), end=(5+29.5j), smooth=False)
CubicBezier(start=(5+29.5j), control1=(8+27j), control2=(11+75.6j), end=(15+87.5j), smooth=False)
CubicBezier(start=(15+87.5j), control1=(19+99.4j), control2=(21+88.6j), end=(25+89.1j), smooth=False)
CubicBezier(start=(25+89.1j), control1=(29+89.6j), control2=(31+90.3j), end=(35+90j), smooth=False)
CubicBezier(start=(35+90j), control1=(39+89.7j), control2=(41+88.5j), end=(45+87.6j), smooth=False)
CubicBezier(start=(45+87.6j), control1=(49+86.6j), control2=(51+86.4j), end=(55+85j), smooth=False)
CubicBezier(start=(55+85j), control1=(59+83.7j), control2=(61+81.3j), end=(65+80.9j), smooth=False)
CubicBezier(start=(65+80.9j), control1=(69+80.5j), control2=(71+84.8j), end=(75+83.2j), smooth=False)
CubicBezier(start=(75+83.2j), control1=(79+81.7j), control2=(81+73.9j), end=(85+73.3j), smooth=False)
CubicBezier(start=(85+73.3j), control1=(89+72.7j), control2=(91+78.5j), end=(95+80.1j), smooth=False)
CubicBezier(start=(95+80.1j), control1=(99+81.8j), control2=(101+80.3j), end=(105+81.6j), smooth=False)
CubicBezier(start=(105+81.6j), control1=(109+82.9j), control2=(111+85.2j), end=(115+86.9j), smooth=False)
CubicBezier(start=(115+86.9j), control1=(119+88.6j), control2=(121+89.4j), end=(125+90j), smooth=False)
CubicBezier(start=(125+90j), control1=(129+90.6j), control2=(131+90j), end=(135+90j), smooth=False)
CubicBezier(start=(135+90j), control1=(139+90j), control2=(141+90j), end=(145+90j), smooth=False)
CubicBezier(start=(145+90j), control1=(149+90j), control2=(151+90j), end=(155+90j), smooth=False)
CubicBezier(start=(155+90j), control1=(159+90j), control2=(161+90j), end=(165+90j), smooth=False)
CubicBezier(start=(165+90j), control1=(169+90j), control2=(171+90.5j), end=(175+90j), smooth=False)
CubicBezier(start=(175+90j), control1=(179+89.5j), control2=(181+88.1j), end=(185+87.7j), smooth=False)
CubicBezier(start=(185+87.7j), control1=(189+87.3j), control2=(191+87.5j), end=(195+87.9j), smooth=False)
CubicBezier(start=(195+87.9j), control1=(199+88.4j), control2=(201+89.6j), end=(205+90j), smooth=False)
CubicBezier(start=(205+90j), control1=(209+90.4j), control2=(211+91.5j), end=(215+90j), smooth=False)
CubicBezier(start=(215+90j), control1=(219+88.5j), control2=(221+89.9j), end=(225+82.4j), smooth=False)
CubicBezier(start=(225+82.4j), control1=(229+75j), control2=(231+59.5j), end=(235+52.8j), smooth=False)
CubicBezier(start=(235+52.8j), control1=(239+46.1j), control2=(241+43.7j), end=(245+49j), smooth=False)
CubicBezier(start=(245+49j), control1=(249+54.4j), control2=(251+72.6j), end=(255+79.6j), smooth=False)
CubicBezier(start=(255+79.6j), control1=(259+86.6j), control2=(261+81.9j), end=(265+84j), smooth=False)
CubicBezier(start=(265+84j), control1=(269+86j), control2=(271+88.8j), end=(275+90j), smooth=False)
CubicBezier(start=(275+90j), control1=(279+91.2j), control2=(281+90.8j), end=(285+90j), smooth=False)
CubicBezier(start=(285+90j), control1=(289+89.2j), control2=(291+87.6j), end=(295+86j), smooth=False)
CubicBezier(start=(295+86j), control1=(299+84.3j), control2=(301+81.9j), end=(305+81.8j), smooth=False)
CubicBezier(start=(305+81.8j), control1=(309+81.7j), control2=(311+85.8j), end=(315+85.4j), smooth=False)
CubicBezier(start=(315+85.4j), control1=(319+85j), control2=(321+83j), end=(325+79.8j), smooth=False)
CubicBezier(start=(325+79.8j), control1=(329+76.5j), control2=(331+69j), end=(335+69.3j), smooth=False)
CubicBezier(start=(335+69.3j), control1=(339+69.7j), control2=(341+78.8j), end=(345+81.4j), smooth=False)
CubicBezier(start=(345+81.4j), control1=(349+84j), control2=(351+80.7j), end=(355+82.4j), smooth=False)
CubicBezier(start=(355+82.4j), control1=(359+84.1j), control2=(361+89.3j), end=(365+90j), smooth=False)
CubicBezier(start=(365+90j), control1=(369+90.7j), control2=(371+87.8j), end=(375+86.1j), smooth=False)
CubicBezier(start=(375+86.1j), control1=(379+84.4j), control2=(381+81.8j), end=(385+81.7j), smooth=False)
CubicBezier(start=(385+81.7j), control1=(389+81.7j), control2=(391+84.9j), end=(395+85.9j), smooth=False)
CubicBezier(start=(395+85.9j), control1=(399+86.8j), control2=(401+86.8j), end=(405+86.3j), smooth=False)
CubicBezier(start=(405+86.3j), control1=(409+85.9j), control2=(411+82.9j), end=(415+83.6j), smooth=False)
CubicBezier(start=(415+83.6j), control1=(419+84.3j), control2=(421+88.7j), end=(425+90j), smooth=False)
CubicBezier(start=(425+90j), control1=(429+91.3j), control2=(431+90j), end=(435+90j), smooth=False)
CubicBezier(start=(435+90j), control1=(439+90j), control2=(441+90j), end=(445+90j), smooth=False)
CubicBezier(start=(445+90j), control1=(449+90j), control2=(451+90j), end=(455+90j), smooth=False)
CubicBezier(start=(455+90j), control1=(459+90j), control2=(461+90j), end=(465+90j), smooth=False)
CubicBezier(start=(465+90j), control1=(469+90j), control2=(471+90j), end=(475+90j), smooth=False)
CubicBezier(start=(475+90j), control1=(479+90j), control2=(481+90j), end=(485+90j), smooth=False)
CubicBezier(start=(485+90j), control1=(489+90j), control2=(491+90j), end=(495+90j), smooth=False)
CubicBezier(start=(495+90j), control1=(499+90j), control2=(501+90j), end=(505+90j), smooth=False)
CubicBezier(start=(505+90j), control1=(509+90j), control2=(511+90j), end=(515+90j), smooth=False)
CubicBezier(start=(515+90j), control1=(519+90j), control2=(521+90.2j), end=(525+90j), smooth=False)
CubicBezier(start=(525+90j), control1=(529+89.8j), control2=(531+93.5j), end=(535+89.2j), smooth=False)
CubicBezier(start=(535+89.2j), control1=(539+84.9j), control2=(541+69.5j), end=(545+68.5j), smooth=False)
CubicBezier(start=(545+68.5j), control1=(549+67.5j), control2=(551+79.9j), end=(555+84.2j), smooth=False)
CubicBezier(start=(555+84.2j), control1=(559+88.5j), control2=(561+90.8j), end=(565+90j), smooth=False)
CubicBezier(start=(565+90j), control1=(569+89.2j), control2=(571+80.4j), end=(575+80.4j), smooth=False)
CubicBezier(start=(575+80.4j), control1=(579+80.4j), control2=(581+89.1j), end=(585+90j), smooth=False)
CubicBezier(start=(585+90j), control1=(589+90.9j), control2=(591+85.1j), end=(595+85.1j), smooth=False)
CubicBezier(start=(595+85.1j), control1=(599+85.1j), control2=(601+89j), end=(605+90j), smooth=False)
CubicBezier(start=(605+90j), control1=(609+91j), control2=(611+91.2j), end=(615+90j), smooth=False)
CubicBezier(start=(615+90j), control1=(619+88.8j), control2=(621+86.9j), end=(625+83.9j), smooth=False)
CubicBezier(start=(625+83.9j), control1=(629+81j), control2=(631+75.7j), end=(635+75.3j), smooth=False)
CubicBezier(start=(635+75.3j), control1=(639+74.8j), control2=(641+88.8j), end=(645+81.6j), smooth=False)
CubicBezier(start=(645+81.6j), control1=(649+74.4j), control2=(651+55.7j), end=(655+39.4j), smooth=False)
CubicBezier(start=(655+39.4j), control1=(659+23.1j), control2=(661-6.1j), end=(665+0j), smooth=False)
CubicBezier(start=(665+0j), control1=(669+6.1j), control2=(671+61.4j), end=(675+69.8j), smooth=False)
CubicBezier(start=(675+69.8j), control1=(679+78.1j), control2=(681+44.8j), end=(685+41.8j), smooth=False)
CubicBezier(start=(685+41.8j), control1=(689+38.8j), control2=(691+51j), end=(695+54.9j), smooth=False)
CubicBezier(start=(695+54.9j), control1=(699+58.8j), control2=(701+59.3j), end=(705+61.3j), smooth=False)
CubicBezier(start=(705+61.3j), control1=(709+63.2j), control2=(711+68.2j), end=(715+64.8j), smooth=False)
CubicBezier(start=(715+64.8j), control1=(719+61.4j), control2=(721+56.6j), end=(725+44.3j), smooth=False)
CubicBezier(start=(725+44.3j), control1=(729+32j), control2=(731-1j), end=(735+3.3j), smooth=False)
CubicBezier(start=(735+3.3j), control1=(739+7.6j), control2=(741+48.5j), end=(745+65.8j), smooth=False)
CubicBezier(start=(745+65.8j), control1=(749+83.2j), control2=(751+87.8j), end=(755+90j), smooth=False)
CubicBezier(start=(755+90j), control1=(759+92.2j), control2=(761+83.8j), end=(765+76.8j), smooth=False)
CubicBezier(start=(765+76.8j), control1=(769+69.8j), control2=(771+54.2j), end=(775+54.8j), smooth=False)
CubicBezier(start=(775+54.8j), control1=(779+55.5j), control2=(781+78.7j), end=(785+80j), smooth=False)
CubicBezier(start=(785+80j), control1=(789+81.4j), control2=(791+61.5j), end=(795+61.5j), smooth=False)
CubicBezier(start=(795+61.5j), control1=(799+61.5j), control2=(801+74.3j), end=(805+80j), smooth=False)
CubicBezier(start=(805+80j), control1=(809+85.7j), control2=(811+88.1j), end=(815+90j), smooth=False)
CubicBezier(start=(815+90j), control1=(819+91.9j), control2=(821+99.3j), end=(825+89.5j), smooth=False)
CubicBezier(start=(825+89.5j), control1=(829+79.7j), control2=(831+51.4j), end=(835+41j), smooth=False)
CubicBezier(start=(835+41j), control1=(839+30.5j), control2=(841+27.4j), end=(845+37.2j), smooth=False)
CubicBezier(start=(845+37.2j), control1=(849+47j), control2=(851+79.4j), end=(855+90j), smooth=False)
CubicBezier(start=(855+90j), control1=(859+100.6j), control2=(861+91.6j), end=(865+90j), smooth=False)
CubicBezier(start=(865+90j), control1=(869+88.4j), control2=(871+90.9j), end=(875+82.1j), smooth=False)
CubicBezier(start=(875+82.1j), control1=(879+73.3j), control2=(881+51.2j), end=(885+46j), smooth=False)
CubicBezier(start=(885+46j), control1=(889+40.7j), control2=(891+50j), end=(895+55.8j), smooth=False)
CubicBezier(start=(895+55.8j), control1=(899+61.5j), control2=(901+73.2j), end=(905+74.8j), smooth=False)
CubicBezier(start=(905+74.8j), control1=(909+76.5j), control2=(911+67.4j), end=(915+64j), smooth=False)
CubicBezier(start=(915+64j), control1=(919+60.6j), control2=(921+59.3j), end=(925+57.9j), smooth=False)
CubicBezier(start=(935+56.9j), control1=(939+56j), control2=(941+50.7j), end=(945+53.7j), smooth=False)
CubicBezier(start=(945+53.7j), control1=(949+56.7j), control2=(951+64.6j), end=(955+71.9j), smooth=False)
CubicBezier(start=(955+71.9j), control1=(959+79.2j), control2=(961+86.4j), end=(965+90j), smooth=False)
CubicBezier(start=(965+90j), control1=(969+93.6j), control2=(971+92.6j), end=(975+90j), smooth=False)
CubicBezier(start=(975+90j), control1=(979+87.4j), control2=(981+82j), end=(985+77j), smooth=False)
CubicBezier(start=(985+77j), control1=(989+72.1j), control2=(992+67.7j), end=(995+65.4j), smooth=False)
CubicBezier(start=(995+65.4j), control1=(998+63j), control2=(999+58.4j), end=(1000+65.4j), smooth=False)
CubicBezier(start=(1000+65.4j), control1=(1001+72.3j), control2=(1000+93.1j), end=(1000+100j), smooth=False)

@regebro
Copy link
Owner

regebro commented Jun 11, 2022

control1 and control2 are the control points for the bezier curve. svg.path uses complex numbers for the mathematics, the j marks the imaginary part of that number. You can think of it as the y-axis.

To find the length of a path segment you can use the .length()method.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants