2022-07-26 20:05:39 -04:00
|
|
|
import "scaling.asy" as scaling;
|
|
|
|
|
2022-07-28 02:15:27 -04:00
|
|
|
real hilt_length = height*0.25;
|
2022-07-27 06:44:34 -04:00
|
|
|
real blade_length = height*0.8;
|
|
|
|
real hilt_width = height*0.05;
|
2022-07-27 06:48:22 -04:00
|
|
|
real hilt_base_overflow = hilt_width*0.7;
|
2022-07-28 02:15:27 -04:00
|
|
|
real blade_base_width = height*0.07;
|
2022-07-27 06:44:34 -04:00
|
|
|
real blade_tip_width = blade_base_width*0.8;
|
|
|
|
real blade_tip_length = blade_length*0.15;
|
|
|
|
real guard_radius = hilt_width*2;
|
|
|
|
real guard_thickness = hilt_width*0.8;
|
|
|
|
real guard_pommel_radius = guard_thickness*0.7;
|
|
|
|
|
|
|
|
real inner_line_base_width = blade_base_width/8;
|
|
|
|
real inner_line_length = blade_length;
|
|
|
|
|
|
|
|
real angle = -60;
|
|
|
|
real guard_distance = blade_length/3;
|
|
|
|
|
2022-07-28 02:15:27 -04:00
|
|
|
path blade[] = scale(1.1)*rotate(angle)*((guard_distance,-blade_base_width/2)--arc((guard_distance+guard_thickness/2, -guard_radius-guard_pommel_radius), (guard_distance,-guard_radius), (guard_distance+guard_thickness,-guard_radius))--(guard_distance+guard_thickness, -hilt_width/2)--(guard_distance+guard_thickness+hilt_length-guard_thickness,-hilt_width/2)--(guard_distance+guard_thickness+hilt_length-guard_thickness,-hilt_width/2-hilt_base_overflow)--(guard_distance+guard_thickness+hilt_length,-hilt_width/2-hilt_base_overflow)---(guard_distance+guard_thickness+hilt_length,hilt_width/2)..{down}(guard_distance, blade_base_width/2)--(guard_distance-blade_length, blade_tip_width/2)--(guard_distance-blade_length-blade_tip_length, 0)--(guard_distance-blade_length, -blade_tip_width/2)--cycle^^(guard_distance+guard_thickness+hilt_length-guard_thickness, hilt_width/2){up}..{down}(guard_distance+guard_thickness, hilt_width/2)--cycle^^(guard_distance,-inner_line_base_width)--(guard_distance-inner_line_length,0)--(guard_distance,inner_line_base_width)--cycle);
|