A fish for fun
\documentclass[border=10pt]{standalone} \usepackage[inline]{asymptote} \begin{document} \begin{asy}[width=\the\linewidth,inline=true] settings.outformat="pdf"; settings.render=0; settings.prc=false; real w=600,h=400; size(h,w); pen bgPen=rgb(0,0.647,1), bodyPen=rgb(0.847,0.196,0.133), whitePen=rgb(1,1,1), eyePen=rgb(0.004,0.18,1)+opacity(0.01), mouthPen=rgb(1,1,1), scalesPen=rgb(0.98,1,0)+12pt; pair[][] bBody={ {(454,270),(436,252),(443,251),},{(433,269),(424,286),(398,322),}, {(361,352),(324,382),(276,405),},{(218,394),(160,382),(92,334),}, {(55,295),(18,256),(12,226),},{(13,187),(14,149),(21,102),}, {(65,66),(109,30),(189,3),},{(243,2),(296,1),(322,24),}, {(348,46),(374,68),(398,89),},{(414,109),(430,129),(437,149),}, {(450,143),(463,137),(481,105),},{(504,80),(526,55),(552,37),}, {(568,40),(585,43),(592,66),},{(584,97),(576,128),(553,166),}, {(542,181),(531,197),(531,189),},{(543,204),(555,218),(579,256),}, {(585,286),(591,316),(578,339),},{(571,349),(563,359),(561,356),}, {(538,338),(515,320),(472,287),}, }; pair[][] bWhite={ {(223,261),(227,278),(209,303),},{(192,312),(174,321),(156,315),}, {(141,304),(127,293),(115,276),},{(116,260),(118,244),(132,228),}, {(143,222),(155,215),(162,220),},{(179,227),(195,234),(220,244),}, }; pair[][] bEye={ {(177,256),(180,264),(177,272),},{(171,276),(164,280),(154,279),}, {(146,276),(139,272),(135,265),},{(136,258),(138,250),(146,241),}, {(155,241),(163,240),(173,248),}, }; pair[][] bMouth={ {(143,104),(122,94),(95,92),}, {(83,86),(71,81),(75,71),}, {(81,68),(87,65),(96,69),}, {(105,68),(115,67),(126,62),}, {(145,74),(165,87),(194,117),}, {(204,133),(213,150),(204,152),}, {(192,143),(179,135),(165,115),}, }; pair[][] aScales={ {(221,370),(236,366),(257,360),(274,346),(292,337),(310,322),(315,305),(317,292),(312,275), (301,264),(307,249),(319,241),(331,229),(340,222),(350,210),(352,194),(347,176),(338,163), (335,151),(326,144),(319,141),(307,139),(312,123),(318,110),(322,93),(322,79),(321,63),(315,56),(297,46),(288,44),}, {(387,115),(393,123),(397,139),(399,153),(394,174),(393,180),(401,203),(403,223),(390,243), (373,257),(383,268),(384,281),(379,300),(360,330),(328,354),(319,359),}, {(465,153),(472,171),(460,182),(461,195),(469,204),(470,219),(460,231),(446,237),(432,242),}, {(513,111),(520,120),(522,131),(515,143),(507,153),(511,164),(515,174),(510,187), (509,205),(511,219),(509,233),(517,243),(521,251),(519,265),(512,280),(507,288),}, {(547,68),(556,73),(559,83),(559,94),(562,106),(563,112),}, {(574,286),(567,291),(562,297),(557,301),(563,304),(564,313),(554,318),(546,323),}, }; guide buildBguide(pair[][] aPoints){ int n=aPoints.length; guide g=aPoints[0][0]; for(int i=0;i