#!/opt/bin/perl # # bridle_calc.pl -- Circoflex Bridle Line Calculator # # Kite size -- figures for a specific 3 meter mini-circoflex $circum = 324; # circumference (all measures in cm) $height = 20; # height of the towing point in-front of ring. $factor = "3/4"; # displacement of bridle point (1/2 or 3/4) $bridle = 8; # number of bridle lines # For a normal circoflex (10 meters such as table above) use # $circum = 1000; $height = 30; $factor = "1/2"; $bridle = 12; # for a 3 meter mini-circoflex # $circum = 300; $height = 25; $factor = "3/4"; $bridle = 8; # For larger 12 meter circoflex # $circum = 1200; $height = 45; $factor = "1/2"; $bridle = 12; # --------------------------------------- $PI = atan2(1,1) * 4; # PI (Constant) $diameter = $circum / $PI; $radius = $diameter / 2; $displace = eval($factor) * $radius; $bridle_dist = $circum / $bridle; format STDOUT_TOP = Circumference @>>>>> Diameter @###.# Radius @###.# $circum, $diameter, $radius Bridle Displaced @>>>>> Height @>>>>> Number @>> $factor, $height, $bridle Dist between Bridles @#####.# $bridle_dist Bridle Lenght OClock --------------------------- . format STDOUT = @>>>> @#####.# @||||| $i, $len, $oclock . for $i ( 0..$bridle/2 ) { $angle = $PI * (1 - 2 * $i/$bridle); # angle (in radians) $len = sqrt( $radius*$radius + $displace*$displace - 2*$radius*$displace*cos($angle) + $height*$height ); { $oclock = ""; $oclock = "12" ,last if $i == 0; # 0/12 $oclock = "11 / 1" ,last if $i == $bridle/12; # 1/12 $oclock = "10 / 2" ,last if $i == $bridle/6; # 2/12 $oclock = " 9 / 3" ,last if $i == $bridle/4; # 3/12 $oclock = " 8 / 4" ,last if $i == $bridle/3; # 4/12 $oclock = " 7 / 5" ,last if $i == $bridle*5/12; # 5/12 $oclock = " 6" ,last if $i == $bridle/2; # 6/12 } write; } print "---------------------------\n";