Example #1
0
def nearest_point_on_line(lpt1,lpt2,qpt):
	h = vidtools.hypotenuse(lpt1,lpt2)
	xdiff = lpt2[0] - lpt1[0]
	m,b = vidtools.line_fx_from_pts(lpt1,lpt2)
	xstep = xdiff/h                                                            
	lpoly = [(x,(m*x+b)) for x in numpy.arange(lpt1[0],lpt2[0],xstep)]
	return vidtools.perigee(lpoly,[qpt])
Example #2
0
def calc_chord_stats(tun,cm_factor=1):
    h = vidtools.hypotenuse(tun[0],tun[-1])
    xdiff = tun[-1][0] - tun[0][0]
    m,b = vidtools.line_fx_from_pts(tun[0],tun[-1])
    xstep = xdiff/h                                                                                     
    lpoly = [(x,(m*x+b)) for x in numpy.arange(tun[0][0],tun[-1][0],xstep)]
    on_chord_pt,on_curve_pt = max([(vidtools.hypotenuse(*vidtools.perigee(lpoly,[p])),vidtools.perigee(lpoly,[p])) for p in tun])[1]

    chord_len = vidtools.hypotenuse(tun[0],tun[-1])/cm_factor
    chord_pt = vidtools.hypotenuse(tun[0],on_chord_pt)/cm_factor
    chord_dp = vidtools.hypotenuse(on_chord_pt,on_curve_pt)/cm_factor
    return chord_len, chord_pt, chord_dp