pro aileron_diff, past_edge_array, clevis_height, linkage_travel, angle=angle, _extra=_extra ; Past_edge is positive if linkage is attached above the wing, ; and negative if attached above aileron. n_pts = n_elements(past_edge_array) ;result = fltarr(n_elements(clevis_height), n_pts) for i = 0, n_pts-1 do begin past_edge = past_edge_array[i] radius = sqrt(past_edge^2 + clevis_height^2) linkage_angle = atan(clevis_height / past_edge) / (!pi*2/360.) if past_edge lt 0 then linkage_angle = 180. + linkage_angle for_angle = acos((past_edge + linkage_travel)/radius) / (!pi*2/360.) aft_angle = acos((past_edge - linkage_travel)/radius) / (!pi*2/360.) f_angle = linkage_angle - for_angle b_angle = aft_angle - linkage_angle ;result[0, i] = b_angle/f_angle*100. percent_of_f_angle = b_angle/f_angle*100. tvlct, /get, r,g,b c = transpose([[r],[g],[b]]) ci = i*24 if keyword_set(angle) then $ display, clevis_height, f_angle, color=c[*,ci], oref=oref, $;, psym=4, linestyle=6, /over; xtitle='Clevis height, mm', ytitle='Upward aileron angle, deg.', $ over=i ne 0, _extra=_extra $ else display, clevis_height, percent_of_f_angle, color=c[*,ci], oref=oref, $ xtitle='Clevis height, mm', ytitle='Down is smaller than up by (%)', $ over=i ne 0, _extra=_extra display, /over, oref=oref, title='Linkage travel '+string(linkage_travel, format='(F3.1)')+' mm.' endfor ;print, 'Forward pull angle: ', f_angle ;print, 'Backward push angle: ', b_angle ;print, 'Differential: ', b_angle/f_angle*100. end