I'm trying to draw out svg with certain parts highlighted. I have my musclesvg class that contains a name, a path and an isHighlighted bool for each muscle. I then transform every path to a flutter path. Finally I draw each path out. If the muscle should be highlighted I change it's color. The svg however is not scaled up correctly even if I try to scale it with a matrix4.
This is the custompainter:
class MusclePathPainter extends CustomPainter {
final List<SvgMuscle> muscles;
MusclePathPainter({
required this.muscles,
});
@override
void paint(Canvas canvas, Size size) {
Paint highlightPaint = Paint()
..style = PaintingStyle.fill
..color = Colors.black;
highlightPaint.color = Colors.red;
Paint defaultPaint = Paint()
..style = PaintingStyle.fill
..color = Colors.black;
defaultPaint.color = Colors.black;
var xScale = SizeConfig.blockSizeHorizontal / 55;
var yScale = SizeConfig.blockSizeVertical / 100;
final Matrix4 matrix4 = Matrix4.identity();
matrix4.scale(xScale, yScale);
muscles.forEach((muscle) {
Path path = parseSvgPathData(muscle.path);
canvas.drawPath(
path.transform(matrix4.storage),
muscle.isHighlighted! ? highlightPaint : defaultPaint,
);
});
}
@override
bool shouldRepaint(CustomPainter oldDelegate) => true;
}
This is my original svg:
<svg xmlns="http://www.w3.org/2000/svg" width="3540" height="4999" viewBox="0 0 3540 4999">
<path id="Trapèzes" d="M422.389,282.5c52.993-107.776,61.268-215.8,68.119-239.027C494.49,29.97,542.664,4.388,550.115.5h.958c-2.44,178.206-115.664,272.266-128.01,282Zm-39.791,0C370.251,272.766,257.023,178.706,254.584.5h.893c7.25,4.052,55.955,31.618,59.673,42.972,7.543,23.023,15.131,131.25,68.121,239.027ZM497.53,247.573c49.774-81.009,85-135.084,85-135.084,71.752,18.536,149.3,67.088,197.363,100.889,0,0,20.135,13.418,24.8,23.111v6.359c-2.094,2.593-7.829,3.985-19.26,3.193-76.654-5.317-146.3-1.4-197.967,2.522-33.655,2.553-59.681,5.107-75.041,5.107C500.242,253.67,494.771,252.063,497.53,247.573Zm-279.34.991c-51.664-3.92-121.309-7.839-197.958-2.522h0C8.289,246.869,2.553,245.313.7,242.5v-5.443c4.127-9.728,25.069-23.675,25.069-23.675,48.067-33.8,125.609-82.353,197.364-100.889,0,0,35.227,54.075,85,135.084,2.758,4.49-2.713,6.1-14.9,6.1C277.87,253.67,251.843,251.117,218.19,248.564ZM400.865,226s-47.4-135.314-49.776-163.64c-2.247-26.871,13.7-25.412,51.74-25.193,38.037-.22,53.989-1.679,51.74,25.193C452.2,90.684,404.795,226,404.795,226Z" transform="translate(1367.302 -0.5)" fill="#2ca8b9"/>
<path id="Pectoraux" d="M758.1,524.5c-121.3-7.335-125.571-85.312-139.518-142.908-17.821-73.585-4.142-199.574-2.206-273.763,2.318-88.871,63.8-96.294,63.8-96.294C714.378,6,771.6,1.7,829.615.5h61.963c89.554,2.752,93.4,93.457,144.136,171.332,49.49,75.9,129.574,128.374,134.243,131.4v.543c-5.059,9.471-99.938,181.961-317.346,214.944-20,3.036-38.154,4.92-54.65,5.784Zm-376.747,0a527.765,527.765,0,0,1-68.343-6.294C102.731,486.284,11.107,324.354.957,305.214v-2.47c9.391-6.168,85.725-57.616,133.5-130.911C185.214,93.948,189.053,3.232,278.639.5h61.929C398.586,1.7,455.795,6,490.006,11.535c0,0,61.483,7.423,63.8,96.294,1.934,74.189,15.612,200.178-2.209,273.763C537.216,440.992,529.8,521.7,396.023,524.5Z" transform="translate(1185.043 278.5)" fill="#34548b"/>
<path id="Deltoïdes" d="M1455.846,410.548c-12.457-8.559-138.216-95.72-220.146-181.813-84.929-89.29-96.969-161.784-60.64-217.484,0,0,197.66,161.064,281.547,399.3Zm-1454.483,0C85.254,172.314,282.9,11.251,282.9,11.251c36.344,55.7,24.295,128.194-60.638,217.484C140.34,314.828,14.582,401.988,2.125,410.548ZM1201.358.547h1.318c82.245,21.3,164.227,52.221,214.736,123.888,32.283,45.788,39.491,125.825,40.438,178.346v26.006c-.287,15.791-1,25.565-1,25.565C1371.917,121.578,1213.965,9.233,1201.358.547ZM.85,349.859V280.884C3.372,229.9,12.483,164.231,40.538,124.435,91.065,52.768,173.047,21.847,255.294.547h1.318C244,9.233,86.041,121.578,1.122,354.353,1.122,354.353,1.007,352.774.85,349.859Z" transform="translate(1041.15 233.452)" fill="#76b183"/>
<path id="Biceps" d="M1727.93,626.665c-9.124-9.355-112.619-116.245-156.2-195.665-76.906-140.236-130.59-280.467-69.4-430.334h1.534C1519.488,9,1675.53,94.935,1711.572,222.4,1734,301.7,1742.668,369.5,1744.5,425.9v47.366c-2.675,81.6-18.256,132.555-16,153.4Zm-1711.156,0C19.109,604.988,2.156,550.75.5,463.314v-27.4C1.6,377.565,9.913,306.451,33.682,222.4,69.735,94.935,225.771,9,241.394.665h1.534c61.2,149.867,7.516,290.1-69.4,430.334C129.957,510.419,26.465,617.31,17.342,626.665Z" transform="translate(897.5 608.335)" fill="#b90d8a"/>
<path id="Triceps" d="M1474.713,361.792c-13.765-3.729-83.093-26.166-135.8-111.181-56.341-90.87-22.754-237.764-19.864-249.818h.2c.258,12.73,6.483,177.307,157.251,360.824v.176Zm-1474.1,0C151.531,178.2,157.766,13.526,158.024.792h.2c2.889,12.054,36.474,158.949-19.87,249.818C85.647,335.626,16.311,358.063,2.544,361.792Z" transform="translate(1031.5 781.208)" fill="#cc6d32"/>
<path id="Abdominaux" d="M453.789,1134.5c-.132-21.359-2.517-412.484.006-453.867,1.987-32.594,29.234-31.827,29.234-31.827,131.151,1.532,180.939-51.524,180.939-51.524C640.62,1056.276,481.185,1126.444,456.9,1134.5Zm-53.407,0c-24.289-8.057-183.724-78.225-207.072-537.218,0,0,49.789,53.056,180.942,51.524,0,0,27.243-.767,29.231,31.827,2.523,41.383.138,432.508.006,453.867ZM734.574,547.547c11.366-73.4,88.2-110.587,88.2-110.587C788,698.171,818.041,776.328,800.086,868.539,782.153,960.729,661.6,1014.5,661.6,1014.5,707.432,904.38,723.23,620.969,734.574,547.547ZM59.548,868.539c-17.941-92.21,12.08-170.367-22.684-431.579,0,0,76.826,37.187,88.188,110.587,11.363,73.422,27.163,356.834,72.989,466.955C198.041,1014.5,77.492,960.729,59.548,868.539Zm438.7-271.259a321.4,321.4,0,0,1-39.309-2.179s3.244-130.676,5.7-164.452c1.872-25.751,21.162-26.468,21.162-26.468,54.515-3.2,134.48,13.618,170.654,21.667,27.114,6.008,25.284,36.095,25.284,36.095-2.02,119.282-120.065,135.338-183.482,135.338ZM175.536,461.941s-1.832-30.087,25.282-36.095c36.176-8.049,116.141-24.869,170.654-21.667,0,0,19.29.717,21.164,26.468,2.456,33.776,5.7,164.452,5.7,164.452a321.393,321.393,0,0,1-39.308,2.179C295.614,597.281,177.556,581.231,175.536,461.941ZM753.62,372.4c4.477-20.809,16.447-19.416,16.447-19.416,44.644-4.163,71.937-28.23,72.123-28.395-6.264,50.641-31.573,70.545-50.154,73.7a47.548,47.548,0,0,1-7.875.646C767.343,398.936,749.756,390.373,753.62,372.4ZM67.6,398.29c-18.572-3.156-43.9-23.061-50.147-73.7,0,0,27.316,24.218,72.113,28.4,0,0,11.968-1.393,16.445,19.416,3.863,17.973-13.707,26.536-30.532,26.536A47.619,47.619,0,0,1,67.6,398.29Zm399.424-42.43s-5.351-84.836,0-122.279c5.352-37.418,42.833-41.756,73.184-38.74h0c45.518,4.545,87.824,30.667,124.158,53.726,0,0,36.621,18.837,32.676,63.912-2.946,33.917-4.825,77.089-4.825,77.089S570.356,347.113,467.022,355.86ZM160.237,312.479c-3.934-45.075,32.68-63.912,32.68-63.912,36.336-23.058,78.642-49.181,124.156-53.726,30.352-3.016,67.831,1.322,73.184,38.74,5.352,37.443,0,122.279,0,122.279-103.333-8.747-225.189,33.708-225.189,33.708S163.193,346.4,160.237,312.479Zm681.952,12.11h0Zm-73.335-28.17c-.589,0-1.178-.006-1.757-.019-29.624-.626-28.6-49.782,11.32-54.19s77.923-29.021,77.923-29.021c-17.126,67.482-57.951,83.23-87.481,83.23ZM3.3,213.188S41.288,237.8,81.217,242.21s40.95,53.564,11.314,54.19c-.579.013-1.168.019-1.756.019C61.253,296.42,20.412,280.675,3.3,213.188Zm465.989-69.454s-11.105-46.6.083-89.8c11.19-43.219,61.487-36.353,126.927-14.893s94.614,104.229,103.244,174.149C699.544,213.191,572.879,120.469,469.291,143.734ZM260.977,39.042C326.417,17.582,376.716,10.716,387.9,53.935c11.189,43.2.084,89.8.084,89.8C284.4,120.469,157.736,213.191,157.736,213.191,166.359,143.271,195.538,60.5,260.977,39.042ZM767.422,189.68c-1.927,0-3.818-.061-5.66-.175-31.944-1.948-29.833-53.448,13.292-56.324,39.3-2.624,77.221-22.914,83.633-26.49V109.4c-19.447,64.556-60.3,80.276-91.262,80.277ZM.687,108.526v-1.981c5.56,3.123,44.005,23.974,83.894,26.636,43.13,2.876,45.227,54.375,13.29,56.324-1.842.113-3.732.175-5.658.175C61.116,189.68,20.025,173.824.687,108.526ZM755.721,86.1c-.972,0-1.939-.013-2.891-.037-35.308-.905-36.861-52.1,10.393-56.371C806.949,25.743,847.718,3.779,853.6.5h.628c-16.519,69.286-63.512,85.6-98.5,85.6ZM5.421.5H6.05c5.878,3.278,46.64,25.243,90.357,29.192,47.269,4.268,45.7,55.465,10.4,56.371-.952.024-1.919.037-2.891.037C68.927,86.1,21.925,69.791,5.421.5Z" transform="translate(1340.313 814.5)" fill="#2eb160"/>
<path id="Dorsaux" d="M1019.625,406.5c1.948-8.055,31.362-131.98,16.463-209.925C1020.705,116.089,1034.132,135.44,1146.5.95V2.925C1141.3,32.8,1089.355,322.8,1019.869,406.5Zm-892.225,0C56.389,320.977,3.721,20.067.5,1.351V.623c112.6,134.842,126.081,115.4,110.682,195.952C96.28,274.52,125.7,398.446,127.644,406.5Z" transform="translate(1196.5 656.5)" fill="#892417"/>
<path id="Avant_Bras" data-name="Avant Bras" d="M2694.238,728.5c-17.865-12.825-410.442-295.548-521.609-453.051C2058.842,114.291,2090.461,17.9,2090.461,17.9s94.811,44.239,132.717,96.388c37.929,52.126,64.514,137.5,154.871,259.124,99.42,133.863,305.549,344.068,316.375,355.085Zm-2619.394,0C85.67,717.482,291.8,507.277,391.22,373.415c90.365-121.627,116.932-207,154.855-259.124C584,62.141,678.809,17.9,678.809,17.9s31.6,96.388-82.169,257.546C485.467,432.951,92.894,715.674,75.029,728.5ZM.5,685.187C8.254,678.5,137.113,565.9,206.342,409.768c44.381-100.078,71.107-195.932,139.053-276.522C409.954,56.673,483.073,5.421,490.2.5h.662c1.866,7.676,29.868,127.292-19.059,200.693C421.262,277,328.089,443.626.5,685.231ZM2297.458,201.193c-48.933-73.4-20.917-193.016-19.05-200.693h.662c7.13,4.921,80.235,56.173,144.794,132.746,67.947,80.59,94.672,176.444,139.05,276.522,68.571,154.63,195.613,266.559,205.585,275.2v.077C2441.1,443.532,2348,276.984,2297.458,201.193Z" transform="translate(385.5 1143.5)" fill="#a109c6"/>
<path id="Adducteurs" d="M455.987,734.7c-3.95-15.151-60.618-235.8-60.618-424.165C395.368,257.223,694.7,15.351,712.9.7h.4C441.22,407.049,455.09,716.709,456.15,734.7Zm-198.321,0C258.725,716.709,272.6,407.049.517.7h.4c18.2,14.654,317.534,256.526,317.534,309.834,0,188.365-56.672,409.015-60.622,424.165Z" transform="translate(1414.5 1801.303)" fill="#c8d80b"/>
<path id="Quadriceps" d="M691.647,1218c-8.579-14.652-169.338-294.258-137.116-618.81C571.229,431.043,773,23.782,784.344,1h.667c1.6,9.594,14.081,88.166,17.489,227V372.477C797.744,578.885,771.872,865.438,692.139,1218Zm-579.973,0C24.225,831.3,1.566,523.993.5,314.775V283.553C1.394,110.117,17,11.8,18.806,1h.667c11.342,22.785,213.116,430.046,229.81,598.19C281.508,923.74,120.745,1203.346,112.166,1218Z" transform="translate(1369.5 1829.002)" fill="#097119"/>
<path id="Ischio_Jambiers" data-name="Ischio Jambiers" d="M704.354,1129.5c-45.74-3.23-130.2-155.739-94.927-712.939,0,0,55.577,353.169,132.562,476.4,65.164,104.3,17.158,206.208-25.507,233.467a19.53,19.53,0,0,1-9.179,3.073Zm-403.241,0a19.53,19.53,0,0,1-9.18-3.073c-42.666-27.259-90.661-129.169-25.509-233.467,76.987-123.23,132.564-476.4,132.564-476.4,35.272,557.131-49.173,709.672-94.918,712.939Zm587.514-10.021c-5.68,0-10.97-3.321-15.707-10.219-75.254-109.635-47.3-161.553-47.3-161.553C933.244,601.427,960.358,6.519,960.63.5h.008c.551,4.5,41.621,340.5,47.162,597.79V701.672c-1.03,38.644-3.4,73.3-7.5,101.974-27.226,190.8-76.82,315.821-111.673,315.833ZM8.105,803.646C4.243,776.584,1.913,744.183.8,708.138v-117.8C7,334.124,47.241,4.955,47.787.5h.008C48.067,6.519,75.176,601.427,182.8,947.706c0,0,27.949,51.917-47.3,161.553-4.738,6.9-10.029,10.219-15.709,10.219C84.93,1119.482,35.337,994.461,8.105,803.646Z" transform="translate(1267.2 2166.5)" fill="#123267"/>
<path id="Mollets" d="M784.634,1118.5c-1.15-5.782-43.038-219.8-18.394-593.29C780.124,314.632,789.958,134.44,842.031.5h.224c2.58,6.681,48.966,128.338,56.244,257.653V322.9a387.7,387.7,0,0,1-10.169,68.784C846.9,559.151,786.251,802.527,784.658,1118.5Zm-669.477,0C113.563,802.527,52.906,559.151,11.486,391.682,4.51,363.477,1.193,333.669.5,303.6V278.895C3.529,142.149,54.846,7.537,57.564.5h.224c52.063,133.939,61.894,314.132,75.792,524.71,24.648,373.486-17.248,587.508-18.4,593.29ZM575.67,455.289C555.05,271.341,621.646,85.035,621.89,84.353v0h0v0C691.315,652.8,729.748,1096.511,729.748,1096.511S591.733,598.562,575.67,455.289ZM277.926,84.352S344.8,271,324.146,455.289c-16.062,143.273-154.073,641.222-154.073,641.222S208.5,652.8,277.926,84.352Z" transform="translate(1321.5 3406.5)" fill="#cd20e3"/>
<path id="Autres" d="M2028.756,3197.7c-16.611-1.633-32.457-7.952-28.77-28.592,4.527-25.308,6.569-36.838,8.832-43.4s28.525-33.5,47.756-20.368h0s12.458,60.964,14.732,71.288c1.97,9.037-8.47,18.787-24.268,21.075Zm-531.971,0c-15.8-2.289-26.253-12.038-24.269-21.075,2.263-10.324,14.716-71.288,14.716-71.288,19.243-13.13,45.5,13.8,47.765,20.368s4.3,18.1,8.832,43.4c3.69,20.64-12.158,26.959-28.766,28.592Zm704.34-5.925c-38.739,0-77.537-3.287-87.947-8.492-19.533-9.767-27.769-85.624-27.769-85.624h0c111.955-69.107,126.176-63.1,129.192-46.581,2.992,16.516,18.768,63.1,30.041,71.357s70.615,48.089,39.065,60.848c-14.732,5.969-48.622,8.492-82.564,8.492Zm-941.008-8.492c-31.55-12.759,27.793-52.591,39.06-60.848s27.043-54.842,30.047-71.357,17.218-22.526,129.173,46.581c0,0-8.235,75.857-27.765,85.624-10.409,5.206-49.2,8.492-87.94,8.492C1308.749,3191.778,1274.852,3189.254,1260.117,3183.285Zm746-169.09c14.894-45.631,134.9-146.891,136.5-130.026,1.578,16.864,18,76.16,31.6,94.648,13.6,18.512,0,25.588,0,25.588-84.324,32.083-165.372,79.222-165.372,79.222C2008.319,3059.5,1998.483,3037.578,2006.117,3014.195Zm-636.51-9.789s-13.6-7.076,0-25.588c13.6-18.489,30.026-77.784,31.6-94.648s121.6,84.395,136.486,130.026c7.636,23.384-2.2,45.306-2.718,69.432C1534.978,3083.627,1453.926,3036.489,1369.607,3004.405Zm653.494-76.238c-13.514-.01-12.015-105.168-9.106-116.795,3.006-12.016,75.125-23.29,94.657-31.549,19.533-8.282,28.558,45.816,8.259,64.606-20.274,18.767-92.4,83.375-92.4,83.375a3.127,3.127,0,0,1-1.4.362Zm-503.8-.362s-72.123-64.608-92.406-83.375c-20.284-18.79-11.269-72.888,8.264-64.606,19.533,8.259,91.653,19.533,94.66,31.549,2.906,11.627,4.406,116.785-9.108,116.795h-.005A3.131,3.131,0,0,1,1519.305,2927.805Zm458.816-1239.738C1969.7,1599.057,1919.1,1511,1919.1,1511s121.842,89.87,112.7,174.845c-9.138,85,11.391,326.746,11.391,326.746S1986.542,1777.079,1978.122,1688.067Zm-466.108-2.226C1502.875,1600.866,1624.721,1511,1624.721,1511s-50.605,88.06-59.026,177.07-65.064,324.52-65.064,324.52S1521.158,1770.84,1512.014,1685.841Zm505.352-149.372c-27.257-67.552,100.73-43.845,109.034-42.662,8.282,1.183,25.007,13.8,16.588,35.563,0,0-27.259,75.835-46.212,90.056a16.975,16.975,0,0,1-10.392,3.485C2067.079,1622.914,2040.157,1592.949,2017.365,1536.469Zm-559.931,86.442a16.959,16.959,0,0,1-10.387-3.485c-18.963-14.221-46.22-90.056-46.22-90.056-8.415-21.76,8.3-34.38,16.592-35.563s136.286-24.891,109.031,42.662c-22.787,56.476-49.715,86.441-69.013,86.442ZM3438.513,418.686c-16.215-14.175-67.391-64.468-80.15-77.2,0,0-25.172-24.474-29.416-32.107-4.223-7.655,11.855.767,34.032-17.166,0,0,66.461,75.325,75.232,83.677,8.769,8.328,29.786,30,33.289,34.726,3.526,4.732,12.132,16.8,3.829,23.8a9.9,9.9,0,0,1-6.591,2.366C3460.686,436.782,3450.1,428.813,3438.513,418.686ZM72.534,436.781a9.908,9.908,0,0,1-6.593-2.366c-8.311-7.006.3-19.07,3.813-23.8s24.526-26.4,33.3-34.726c8.774-8.353,75.234-83.677,75.234-83.677,22.171,17.932,38.264,9.51,34.027,17.166-4.236,7.633-29.4,32.107-29.4,32.107-12.765,12.737-63.938,63.03-80.158,77.2-11.581,10.126-22.163,18.094-30.216,18.095ZM3501.01,418.361c-12.806-11.251-102-110.724-108.267-118.173,0,0-12.967-13.593-5.033-17.746,8.837-4.638,13.687-7.584,21.319-15.264,0,0,54.747,64.214,72.494,84.673,17.746,20.485,44.379,56.814,47,61.176,2.6,4.361,5.1,11.273-.3,15.936a7.4,7.4,0,0,1-5.006,1.732C3517.887,430.7,3510.315,426.569,3501.01,418.361ZM13.034,428.963c-5.407-4.663-2.9-11.576-.287-15.936s29.242-40.691,47-61.176c17.753-20.459,72.486-84.673,72.486-84.673,7.639,7.68,12.478,10.626,21.331,15.264,7.938,4.154-5.044,17.746-5.044,17.746-6.267,7.448-95.461,106.922-108.252,118.173C30.952,426.569,23.373,430.7,18.042,430.7A7.41,7.41,0,0,1,13.034,428.963Zm3310.9-52.265c-13.9-11.439-45.145-41.34-52.684-51.338-3.588-4.734-3.021-4.066,2-3.4,5.553.739,16.559,1.479,33.406-5.116,0,0,38.786,39.855,52.914,53.053s36.7,33.2,27.791,42.5a8.038,8.038,0,0,1-6.09,2.359C3365.951,414.76,3335.9,386.576,3323.938,376.7ZM159.986,414.76a8.054,8.054,0,0,1-6.1-2.359c-8.9-9.3,13.675-29.3,27.8-42.5S234.6,316.847,234.6,316.847c16.854,6.594,27.86,5.854,33.415,5.116,5.016-.668,5.586-1.336,2,3.4-7.553,10-38.8,39.9-52.683,51.338-11.966,9.877-42.017,38.058-57.347,38.061Zm3324.877-86.614c-12.411-14.939-46.187-53.7-52.219-63.4-6.705-10.833-10.068-19.811,14.429-31.851h0s49.412,57.809,62.544,78.85c9.824,15.791,27.054,40.042,30.884,55.837v10.081a7.793,7.793,0,0,1-1.423,2.285,3.76,3.76,0,0,1-2.918,1.279C3526.119,381.227,3503.222,350.25,3484.863,328.145ZM5.108,381.225A3.752,3.752,0,0,1,2.2,379.946,8.008,8.008,0,0,1,.5,376.906v-8.13c3.208-15.744,21.077-40.838,31.158-57.033C44.768,290.7,94.2,232.893,94.2,232.893h0c24.5,12.04,21.138,21.018,14.415,31.851-6.013,9.7-39.8,48.463-52.211,63.4-18.354,22.1-41.258,53.077-51.291,53.079ZM3217.551,267.108c-59.527-49.272-72.913-89.892-73.145-120.748-.232-30.829,53.287-79.1,97.248-89.845,0,0,42.406-14.059,88.871,40.11,37.883,44.17,77.135,96.97,78.294,107.964,1.787,16.588-7.167,45.54-53.7,60.918-28.869,9.522-51.949,26.787-79.5,26.789C3258.728,292.3,3240.167,285.821,3217.551,267.108ZM265.648,292.3c-27.556,0-50.633-17.267-79.49-26.789-46.538-15.378-55.5-44.33-53.724-60.918,1.18-10.994,40.41-63.794,78.3-107.964,46.457-54.169,88.87-40.11,88.87-40.11,43.964,10.742,97.475,59.017,97.244,89.845-.234,30.856-13.6,71.475-73.135,120.748C301.1,285.818,282.539,292.3,265.656,292.3ZM3072.705,28.7h46.682c18.727,8.458,41.054,18.078,66.569,27.839h0s-41.9,28.047-50.177,47.416c-.921,2.145-2.191,3.125-3.763,3.126C3121.257,107.086,3096.374,61.163,3072.705,28.7ZM409.25,107.083c-1.57,0-2.84-.981-3.76-3.126-8.3-19.37-50.171-47.416-50.171-47.416,25.512-9.761,47.836-19.381,66.56-27.839h46.675c-23.659,32.459-48.548,78.378-59.3,78.381ZM3482.483,94.728c-40.271,0-105.413-13.477-122.727-23.574-16.1-9.394-69.039-30.2-69.039-30.2,24.592-7.121,69.039,2.365,101.632,14.2,26.91,9.769,88.9,13.943,101.331,13.734,8.35-.163,20.877,1.323,23.5,7.007,1.3,2.76,1.09,7.353-3.92,12.481-4.428,4.522-15.9,6.359-30.765,6.359ZM28.007,88.368c-5-5.128-5.213-9.721-3.928-12.481,2.637-5.684,15.145-7.169,23.506-7.007,12.443.209,74.416-3.965,101.327-13.734,32.592-11.831,77.033-21.317,101.623-14.2,0,0-52.926,20.809-69.031,30.2-17.311,10.1-82.455,23.572-122.726,23.574C43.907,94.729,32.435,92.892,28.007,88.368Z" transform="translate(-0.5 1801.298)" fill="#9299a5"/>
</svg>
This is what my list of muscles looks like:
List<SvgMuscle> muscles_front = [
SvgMuscle(name: 'Abdominaux', isHighlighted: true, path: 'M453.789,1134.5c-.132-21.359-2.517-412.484.006-453.867,1.987-32.594,29.234-31.827,29.234-31.827,131.151,1.532,180.939-51.524,180.939-51.524C640.62,1056.276,481.185,1126.444,456.9,1134.5Zm-53.407,0c-24.289-8.057-183.724-78.225-207.072-537.218,0,0,49.789,53.056,180.942,51.524,0,0,27.243-.767,29.231,31.827,2.523,41.383.138,432.508.006,453.867ZM734.574,547.547c11.366-73.4,88.2-110.587,88.2-110.587C788,698.171,818.041,776.328,800.086,868.539,782.153,960.729,661.6,1014.5,661.6,1014.5,707.432,904.38,723.23,620.969,734.574,547.547ZM59.548,868.539c-17.941-92.21,12.08-170.367-22.684-431.579,0,0,76.826,37.187,88.188,110.587,11.363,73.422,27.163,356.834,72.989,466.955C198.041,1014.5,77.492,960.729,59.548,868.539Zm438.7-271.259a321.4,321.4,0,0,1-39.309-2.179s3.244-130.676,5.7-164.452c1.872-25.751,21.162-26.468,21.162-26.468,54.515-3.2,134.48,13.618,170.654,21.667,27.114,6.008,25.284,36.095,25.284,36.095-2.02,119.282-120.065,135.338-183.482,135.338ZM175.536,461.941s-1.832-30.087,25.282-36.095c36.176-8.049,116.141-24.869,170.654-21.667,0,0,19.29.717,21.164,26.468,2.456,33.776,5.7,164.452,5.7,164.452a321.393,321.393,0,0,1-39.308,2.179C295.614,597.281,177.556,581.231,175.536,461.941ZM753.62,372.4c4.477-20.809,16.447-19.416,16.447-19.416,44.644-4.163,71.937-28.23,72.123-28.395-6.264,50.641-31.573,70.545-50.154,73.7a47.548,47.548,0,0,1-7.875.646C767.343,398.936,749.756,390.373,753.62,372.4ZM67.6,398.29c-18.572-3.156-43.9-23.061-50.147-73.7,0,0,27.316,24.218,72.113,28.4,0,0,11.968-1.393,16.445,19.416,3.863,17.973-13.707,26.536-30.532,26.536A47.619,47.619,0,0,1,67.6,398.29Zm399.424-42.43s-5.351-84.836,0-122.279c5.352-37.418,42.833-41.756,73.184-38.74h0c45.518,4.545,87.824,30.667,124.158,53.726,0,0,36.621,18.837,32.676,63.912-2.946,33.917-4.825,77.089-4.825,77.089S570.356,347.113,467.022,355.86ZM160.237,312.479c-3.934-45.075,32.68-63.912,32.68-63.912,36.336-23.058,78.642-49.181,124.156-53.726,30.352-3.016,67.831,1.322,73.184,38.74,5.352,37.443,0,122.279,0,122.279-103.333-8.747-225.189,33.708-225.189,33.708S163.193,346.4,160.237,312.479Zm681.952,12.11h0Zm-73.335-28.17c-.589,0-1.178-.006-1.757-.019-29.624-.626-28.6-49.782,11.32-54.19s77.923-29.021,77.923-29.021c-17.126,67.482-57.951,83.23-87.481,83.23ZM3.3,213.188S41.288,237.8,81.217,242.21s40.95,53.564,11.314,54.19c-.579.013-1.168.019-1.756.019C61.253,296.42,20.412,280.675,3.3,213.188Zm465.989-69.454s-11.105-46.6.083-89.8c11.19-43.219,61.487-36.353,126.927-14.893s94.614,104.229,103.244,174.149C699.544,213.191,572.879,120.469,469.291,143.734ZM260.977,39.042C326.417,17.582,376.716,10.716,387.9,53.935c11.189,43.2.084,89.8.084,89.8C284.4,120.469,157.736,213.191,157.736,213.191,166.359,143.271,195.538,60.5,260.977,39.042ZM767.422,189.68c-1.927,0-3.818-.061-5.66-.175-31.944-1.948-29.833-53.448,13.292-56.324,39.3-2.624,77.221-22.914,83.633-26.49V109.4c-19.447,64.556-60.3,80.276-91.262,80.277ZM.687,108.526v-1.981c5.56,3.123,44.005,23.974,83.894,26.636,43.13,2.876,45.227,54.375,13.29,56.324-1.842.113-3.732.175-5.658.175C61.116,189.68,20.025,173.824.687,108.526ZM755.721,86.1c-.972,0-1.939-.013-2.891-.037-35.308-.905-36.861-52.1,10.393-56.371C806.949,25.743,847.718,3.779,853.6.5h.628c-16.519,69.286-63.512,85.6-98.5,85.6ZM5.421.5H6.05c5.878,3.278,46.64,25.243,90.357,29.192,47.269,4.268,45.7,55.465,10.4,56.371-.952.024-1.919.037-2.891.037C68.927,86.1,21.925,69.791,5.421.5Z'),
…
];
This is the result:
Edit: Tried the following inside my pathpainter:
final fs = applyBoxFit(BoxFit.contain, Size(3540, 5000), size);
final r = Alignment.center.inscribe(fs.destination, Offset.zero & size);
final matrix = Matrix4.translationValues(r.left, r.top, 0)
..scale(fs.destination.width / fs.source.width);
muscles.forEach((muscle) {
Path path = parseSvgPathData(muscle.path);
canvas
..clipRect(Offset.zero & size)
..drawPath(
path.transform(matrix.storage),
muscle.isHighlighted! ? highlightPaint : defaultPaint,
);
});
Which gives me the following: