From 29e3990ffdfbb1715c328b40ca98917418e1d731 Mon Sep 17 00:00:00 2001 From: serr Date: Wed, 25 Jun 2025 21:08:36 +0300 Subject: [PATCH] =?UTF-8?q?=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20?= =?UTF-8?q?=D0=BC=D0=B0=D0=BA=D1=80=D0=BE=D1=81=D1=8B=20=D0=B4=D0=BB=D1=8F?= =?UTF-8?q?=20=D0=B3=D0=B5=D0=BD=D0=B5=D1=80=D0=B0=D1=86=D0=B8=D0=B8=20?= =?UTF-8?q?=D1=84=D1=83=D0=BD=D0=BA=D1=86=D0=B8=D0=B9=20=D1=82=D0=B8=D0=BF?= =?UTF-8?q?=D0=B0=20=D0=BF=D1=80=D1=8F=D0=BC=D0=BE=5F=D0=BF=D0=BE=D0=B2?= =?UTF-8?q?=D0=BE=D1=80=D0=BE=D1=82,=20=D0=BF=D0=BE=D0=B2=D0=BE=D1=80?= =?UTF-8?q?=D0=BE=D1=82=5F=D0=BF=D1=80=D1=8F=D0=BC=D0=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- imgs/polygons/3.png | Bin 2921 -> 2962 bytes imgs/polygons/4.png | Bin 2536 -> 2536 bytes imgs/polygons/5.png | Bin 3021 -> 3106 bytes imgs/polygons/6.png | Bin 2923 -> 3006 bytes imgs/polygons/7.png | Bin 2991 -> 3118 bytes src/main.rs | 10 +++++----- src/turtle.rs | 14 ++++++-------- 7 files changed, 11 insertions(+), 13 deletions(-) diff --git a/imgs/polygons/3.png b/imgs/polygons/3.png index fb3c11993dcca093ccd458260ade127730f96008..2c71d03a996825e6a242a5528eef0d435efdf05b 100644 GIT binary patch literal 2962 zcmeH}{Yz6}6vvt!Zm!EFJ+SHnklA8b=6-)N}`FQ z7^o1vu;E07sfA2MDpT=?7-ail5#$ex6p>Y0+tYI%OP>CNg2Be+d^q>}oOAB?+^wgm zAUn|ipg%$=P?nQ<9w9CczJ4Bre2okjBP1x1Wo8t&abIRUha@H1mz%hCz4!If)26&j zMwQj{`%`y!K$|-zI|ijYWtJ!)OyRv`!&76xTEIMKf!gw!+mwn!R>?pVh=?5 zLWR?JbXmUQ-SI}A@IWOqP1$W38kMoV0u>vd+x7Su@={C}nPRS6%>5E;x#K2RG-cNt zTrW^?xg%jTzQ^ElNLJVMA}^w#P&#bh9Ut_fPL-_OF%rFyte6f4fh!GpAN8VM5SU{H z#N!|kqiJZinEe<5KG3R}w0rl}=nNI1M8J7;RXZBTHSvvPcav=Wvxwk*e`pqu(mJCD^gjbqc&Ofj37HmvsC zd!aR2%sQ3qCq7L2a_ZPVB4FSP#z1q28exVoXqA4;Qj{6IhNN0FQz;Y?q7uXG>yaA zJoM)ew^h$2`gm!speo!<{%a#yRzarmY*p7UrZ!O@ literal 2921 zcmeHJ+e?#i82-&^>XuoC3_H!%mJlt)$Sw+&sm&Q|5*s5t%(9fq;Rz3TGY`R7CF(50 z3iT>ugIPi=llT(CN(!%r*e(`9E*3ewSmknlz3;EmpMQcd*!XxK9^U6YJny&JinZz_ z(Jm1oBuP`4e~u8rVf-e<0P;hcCL=_grOD6Lw+g<$5{}5v4@@udEsNc6-;Xw&t#p~a z?th;vw}u9a#)h(w$`+TKpIvQxXgzVwGxl-8;dF&-1*g8?GZ+(nM&}Uq!KS_g$)McT z);GW4kZfz8F=S?Y?KO=avEp5hF>;eUDsA!@_%f2<3eP=O+MMNC8uvt?VEz8iA)U_EP|exT4!;}{z5I#^jz56}iy4^MNs1=|4(IA5*2Adm--U9)SVqpW$7}z^Y3*iL_@^-ac|dg= ztkDZo;l2Y5|LPAYX=fd<^oe$lH(cn;4eY4S0}F!760&e!y#K zyVV=?29ZzoGN}GA@(y5LKdaAOM;_H1W%all$WKRpHLJ(<0zOOiBn0Z^1|Zhae&<+y z?g8?s-rWs)xE>wt*SJB?hJ30g!8vk05V!PSy6;^5CSbPin{mrmf1_)7C2O-_6|8r! z9Q?>1A$r&*K4Hzt6@Wjb_!*36F*eY+oaOag0DPI^%`C3F2>2ky6Ing!G}O^Z>&Qbl zs<2))t=G@a!6FBL^w2rSl`VfUPO6`EWQM| zNk{o&7EeMvkMg%-UIoMjR6jYM@h!g(^fUW#zJ7MUmQ=63b&B?z%J%Dneut!Z78WsH zsbpMfqemLa+|ZWRt*BQ~nuI;-xp8G;FN)2rnE_19SGg6qv2IWbfn!`@lW47%|F;)? h{(T2U=diivV2Ra1eAnrU&Ob=SQKtX^ diff --git a/imgs/polygons/4.png b/imgs/polygons/4.png index ac6f76329b17c0d6a34a60c2135150188b23cfdf..c570e99566184a557d2890282488f61f3c2eed16 100644 GIT binary patch delta 89 zcmaDM{6cucDrU)gZO@pm4BK|Tif3&&75bkK$T9+otY_Vrf0#+Qp4~I1^y+>|hN-Ln st<5RE8v0*u^DE|JrpbSqkBR+JJ}51)E)EQ+>we`kIy?o@ z@0mvF(Qp_|2QF{3~!>Q2l*su3T>Ctc)O$W5d2lXt+7zEbYOlfEVw%`~% MUHx3vIVCg!01LjB^8f$< diff --git a/imgs/polygons/5.png b/imgs/polygons/5.png index 7e49a90f26185b3e8e54048e7337e19cc8d529ce..e55a9acff80fe7ab533248432130699f0ff0904c 100644 GIT binary patch literal 3106 zcmeH}VQf=X6vyvtiz}2;Ha`sKuvl7Vh*|>+d_e7xHRBDPQ`a=wuFiD20Bcq;IO&%+ z_XP=(v679LnT^CmO<(egGwB4K5268CB>VKz%@@-NaSKb>LY69P)^|PU*1f2!e)dC? zHaG8{ckcP0-#zEFr<$7@tQ)E}5JIf{!TOg8;U34Y*#JAg*&lKcV!6ZD?{9gJyL-iW z!TIXowR^OC;mi*|es=6oSc<5rKR<^*93E^;4)5CSSXh2{>`3g>llzV;$)9EuqLl06 z>VCy_(NJ1T97=WYpM5~9PoV0VwA{S$rvul7c;FEaaqqV@)`C%;7hJo!9$T=CIXeKkuto8!hF z>X{n+-bb5Ai*$KDL7&uDlRw{Zwta}c*m>wyLa>pY{?_A)P^quIqV}_MdY0PN_*e6p zjXe`Se`_|gPG4sdf}Kw-(}|Q*%8hZ5yw9KS*4J&|v>)UNOrBMjwJH*EpW@<@aaW|RLuiK2=;>{NrtPtzdk=noA?8(B@(R9^+G&<}*k-_HD5MSK*@IIxvG1#R|>91e7D9xwR;x%F^~5P{G%+ zQXetvH$35+?2GU{Ag%kHX=*mXD%{fcFyhj-V#v95by3CgCXmesc*t?G61Z!wl#2ts z-W}^N-t@W6uoW_;I84F24dRSPp$239(}Q?sWnD!ZoaTkCT>7FFbxs}t8nJS0pkxOe z{Y(vWErTB;;XyS{)D^h~Po_K3X>1goXc(_R<_KK(vnkg-I)F9NWkjF71)oQm&s*rz z$8w-$j9Lu<$JD`0UxL$v*+mRRn^E$z2U-jq43MW_P~-PyFFxB$_(nD6x%_$)%OH&0 zJ!c}=@@Xt=Z8x^8=OZMj`TH?h>cr@i9Y~P6Fgk4^(1(5iPp#~^6W?&R2jEQF??j9; zL8eEi9{{_s1yRTwacAEY0u%_lpd=HtgGugk;bo?c(1G$mgkSl+AJqgq4TqnJe$gGq=Q8%XrELiq{X(dzDi{qt)k&Oawm>G|&y gxy0lD#bd_KeK$T=J!)NW!GC|kdzmM_F*s4(& zQ-~hy;${Y04`NCYYKecyP#a+c83+|2%SY~ho%5NO9{aa{VsOXd`+na!=lA{2Irpxi zs31obwls_oqT+M2b`ip@#b1a5cD|{XBoGpQjn7KobAtQSschBkHNX5yjh`=ezrI(S zUuiRV96z6f7cAyHyJh31gwIpQorg}|t>1FkZGSUr6>ZZsT-pb;Ulaiw&>_$V|6~qm zlxecOJ4NsN$hFqGg&5C_J)uFAc5@3#ye)+$gXDaW1nY59^mxoFN>62r_;$dJ9f)6* z_vg+b&I6wM5b;fZ@oj)lF#I_;=Qn53KNE0!JNj4p#nS+W-aPZkI*lDe>My z`mu53x(N4kh0C@}NApb8N8RI<#Zmfa=lta#gzJlC>+ycszrM-^mB&ON^i~b$csvUU zD?N3XjbO;e$U3-uH2R&!wJQv=N^RBoit2HCL(>V(dKk++(v=bq1xV&Q`gAk}gr7D( zObTu9qsv(MntAZqpdk(pR1~0709Jr%+Dit0raZ9+qI}0F+G_^B&LH()2^t!;(ghgi z@_}VoxlAaJm8RiN|Gwg=ie~zOG1e|ZJ_AGZ02h*YxPw+nK#v}fN=RhuP&_d{Y=)RZ zD1?UyN@Nqo*r;KyV2AO`aIEAUQ)(WPfE%%)v;PLn9@!^%|t? zYG9O$c?GB=Y=D;XO*~NLcJv9+nB5hO*`KoPt|q1z>l;c~_T=Sw_X*TOi13&u` z^-Xrdf|SduSY>7fOl?QXjjS^2Na%ZdY6t}jZeoF_(9Lxo16%5`H{e?M#Zg8k z7H5GLAQ^aoDbAM9z8`BRN~zfLv=;YQ$usxo3r0bi6o0n46qjX-l18DeWzxz)MtSw_-jWR@)!^@x2JO+yFBwxh{49o^W!|f^EUHxMFOg#QdFAU|?vsR>aWHI$bc4@$m1l%3aX>U{p4+J;W{_FZbO zYVcY^zTdwcCtRItdt6J3)I*~OZtt{TY+t@B*z+Oc_ISlTl9JE({3cC3Q$D2Tfb9WQ zI!7$M%gphpqe8l?@A0U6X3gT6W4l!1PeIc}5W-HEL} zrU{MF`WmGEf76pb)H~9Rq zBfj~2gMmzP#^b#k3n<7V6SX^c?+fm`0qHmICq{tXw2-8k<66Uwe$#-%YN#DnOF3Rk z8SvU4p}rhB5a^%{{+MMe)^(g*u5AgLXdTpHAFKodoeC8k<$b8gdkL-G^{(@&Ntebe zQ8FTIki8TMEaZbA08IG3O zXY%-I#JisWepkvloPG-P6}<<+1ZbzS7B)HoBuTf?s%~^A>2`DrI-^I;E;+{2{~K;rQsU~QYr6AZEz zz*hJtG-x|2u43*_0|Kf-1&Vx7`k;U#5Y0F>u3RLj;5Q}U!cxv5LCze$!}&-QXT&pb zq_08=3z@sOcwQT{kcL^9jB}W^oU($GH=sD=9HDwJPArz;qP1BKV}cr|>=5A>?Ws?b z5Lmh{KAoeXMoHhIU-SrPe7qgXqxVn-&Bl$;--PpVb}r!K7NFc3hL`Yo6mc!XH{$(E zu;Y|fPn-C-M$FUC;wJO>0?gONaLr%b2yeAU(5paMD*zUCTh4m;k@>U3spt5+Eak)h b?Zeo-$l{hV^roQbLMBaaH literal 2923 zcmeH}T}YEr7{|}PoX&J+sHE0v%nVHh4MoJJrRb|*5{?mRN(o^(Ds35qdPV3%D#V3G zNNP6~8*C&rU0qDm#LuLQfwqf9k-;LP3rk0PPv<$+Ja*MZmxGO$=g0s2pZEPg=j>f) zbyZoEB2j@5isH&kjvyr32j6fpA>UNn)d)pqb0x(!mqedOC4-uyy^~*Y+sf^!xkoLP zCv66g0Eu_u4u5u&F6EDbroke*!=d5({|3yXAnLxpg>gZ^jWOJa}-m% zswy@c1nrZIPODIe9@iS(I$VdsZT_}9jeVGJu6$?Vb5NST&gkY7P={5xtXW#d=^pcl z&l}eM*22q48%$%(Lu4#EeV|Q5+IcI;WW*q=k8GdO>FZX#GLUcM98TXAN6LA(OM%98 z*ko>Qb+-~1MIUD?1S}y=f^Uz-^vDLKSewXQ^BZI zP6pxXBnCz;HI}iD2B9cOIu<^I_1!^yaURIM2og|v%xf6Z@ejj34hBXt6mWNApH-M= z=g>t)h6l>Y?c$wmKyorNtfK8wVJ`0%dnd3F(sZeqT<`;Ep9$@?QkK64uBMz0A_D4o zTF0=ueBcVo<5}KBI8Rg1CbRq=@Eod_z<{Trrs-)TSlv4CB&t)gJO#Lt@;F$pgIYrC zBvyA7crI`kV);|xX_SWrd5=|?CHn!FgM16YLct<=Q3rGWv+qOKU*|uRLnsG$5B%#s aSSuUX%oF3XLdFacxw>-e$HId?-D&Cl z&Kr+-+rzK>htC|Y-{W_L0xv)NzVdc%?D4K$SNL%Hqu=&Be>qv+9PIgP(%0>e9uO+- z;y5KH$7Bx4KA?NR7kQo;2THB6F5&dypz^jHm^R8DhdQCfG7G8kES9{M|>4=V+!JT5#ONax|!Pt^J{T_fOsPEiVzPIkLuJ}p&qUYr6O~ij9eyRiC7Hh0c$iEOae=dcd zbNluzYph&Y(iAaPdK_`{uWQ`h@eM4^A8qUS;76{s)Zg|g>)0ymjw3-OmmTkpAC<-@ zc}d7~Av}@l`rD^0fbyK;DPvG}Vk0Cf;$xcuA7{&f-te)&%0odlgMHuazZg~x?23gu zJuR)l*7LC4&JUU18Y_{{k61?A9dc8oP=q?RDyZYUg8S#DzycG**BiF&M!jFMvrR{W z7QO>?I&ap&LQ@{@ctQsYYx41ko5wn@SxkD|DT@|ju+BUoD)b27zTT| z<2^h`0~M-02NJ!88R@eYOfD3QvH6{Ev8~|D$6p=w*2{Ks-!6rkB9~^ACmhTlQ6Pn0 zg0g1?CWIzNjEKUxkHMMJUJ;lOniwHM?N}(-g4YVcNGUw%$6kmuvElp?quz_BQBQfk z@gD^6JWRq+1P64v_+JD>t=Jb{BMPX|&-8xcPR<_>230Q}#ZM?Ccg1UkKra-bfEWqR zncLJWq(eD%(CIpujBOuJm4v{wB4^p5Au>T|WNOdyZ}el6JX3bT??oAgqUb{|sjrlu zkwxfaH5;~#-x;Ho=2}`=#WwYZ%|AFQ0P$=n31|t@S~Z%jo@iGEq;+UCi$+UF+G935`RHJS4Flaj4Lf4>$A8pYAdfwFmK74#BG;DNg zFS$}b10U8{8D0jyFd%@(_^mp0rIceHjk}3v{*Gvi@zsKVqE-8y%=2Qbc51LRKmFW@ z>egs@ZhV|*m--~awc@4tO!u_1MMm9)z}0{;V;T+>kPf6spW1;3Nr9{>OV literal 2991 zcmeHJT}YEr7(R3UrI@7`VMdyLQ;^C~nt>Nu8TuvIpX(!>Xq17uH8aXgXr>n;6xK>F z60#ur*D<`C9+I&JH78aCzjY>jKzqB`9~O2Y{P$K2#owlN=RWW`l6V>r{t32Tfg$2aJ=KqG_RYwJ~;HK zw&lF8D9mZ_YK4(aI3%HjhKcAG_1?R$S_x4tcuaq5nF=@8=`q(CQXk1lDeWZphIqA{4(K`oiNy`-@4JvhkfpD)YF)R>aR{o@`f5 z^JXl^9lB~cfj35t!??+5`Y9Ki^w#-VC3su2=c$H2GXdy#@2@Ovm+K`_XN3^a8 zq^bP0*i@p8BCUMTPuoefa%>MDU!>tO8s3gHxWI^v@nR!XYm0#H@MCs`s6E}u(+a#-MMIYw?@JRg?%noMSArIGEmbx@2@qH)avhpBoKD9bjj;Jk$59?WTGC@&pUV&SZCh#hBjPD`f?=d z*MUCmN?waF`xzA1u)@^=I|ifwSsd&`un+i74*1}E+t+l1_~5mD4}6F-aer~Xb#Fz} EZ+{EP*8l(j diff --git a/src/main.rs b/src/main.rs index 45742cb..1b392a5 100644 --- a/src/main.rs +++ b/src/main.rs @@ -24,11 +24,11 @@ fn polygon(corners_number: u32, steps_count: u32, output_path: &'static str) { } fn main() { - polygon(3, 10, "imgs/polygons/3.png"); - polygon(4, 8, "imgs/polygons/4.png"); - polygon(5, 6, "imgs/polygons/5.png"); - polygon(6, 5, "imgs/polygons/6.png"); - polygon(7, 4, "imgs/polygons/7.png"); + polygon(3, 11, "imgs/polygons/3.png"); + polygon(4, 9, "imgs/polygons/4.png"); + polygon(5, 7, "imgs/polygons/5.png"); + polygon(6, 6, "imgs/polygons/6.png"); + polygon(7, 5, "imgs/polygons/7.png"); polygon(8, 4, "imgs/polygons/8.png"); polygon(9, 4, "imgs/polygons/9.png"); polygon(36, 1, "imgs/polygons/36.png"); diff --git a/src/turtle.rs b/src/turtle.rs index 772826d..10ccf24 100644 --- a/src/turtle.rs +++ b/src/turtle.rs @@ -99,15 +99,13 @@ impl Turtle { pub fn forward(&mut self, steps_count: u32) { let start_pos = self.pos; - - let dy = self.angle.sin() * steps_count as f64 * self.step_length as f64; - let dx = self.angle.cos() * steps_count as f64 * self.step_length as f64; + let (sin, cos) = self.angle.sin_cos(); + let step = steps_count * self.step_length; - self.set_pos(( - self.pos.0 + dx.round() as i32, - self.pos.1 + dy.round() as i32 - )); - + self.pos = ( + self.pos.0 + (cos * step as f64).round() as i32, + self.pos.1 + (sin * step as f64).round() as i32, + ); self.draw_line(start_pos, self.pos); }