domingo, 24 de abril de 2011

Dibujo automático de un paso de peatones. [calle.bsc]


' Longitud del paso de peatones
 a=0
 b=0
 k=0
 c=0
 d=0
 e=0
 setpoint "situa 1 punto en el punto de comienzo " 1
 if sys(1)<>1 then goto a1
 pointval x1 y1 1
>undo
 a2:
 setpoint "otro p en la direccion de la aceras (calzada a la izqu)" 1
 pointval x2 y2 1
 >undo
  input "Ancho de la calle " d
  d=d+2
a=x2-x1
b=y2-y1
if b=0 then goto a4
if a=0 then goto a5
  k=a/b
  if a>0 then
    if b>0 then
      sigx=-1
      sigy=1
    end if
    if b<0 then
      sigx=1
      sigy=-1
    end if
  end if
  if a<0 then
    if b>0 then
      sigx=-1
      sigy=1
    end if
    if b<0 then
      sigx=1
      sigy=-1
    end if
  end if
    e=sigx*d/(sqrt(1+k*k))
    e4=-e*2/d
    c=sigy*(d*k)/(sqrt(1+k*k))
    c4=-c*2/d
    x3=x1+e
    y3=y1+c
    x4=x1+e4
    y4=y1+c4
a4:
if b=0 then
  x3=x1
  if x2>x1 then y3=y2+d
  if x2
end if
a5:
if a=0 then
  y3=y1
  if y2>y1 then x3=x2-d
  if y2
end if


>pointxy [x4][y4]
>pointxy [x3][y3]
>v
end


 punto:
   k=l/a
   s=a/l
   xx=s*(y1-y2)+x1
   yy=s*(x2-x1)+y1
   x=k*(yy-y1)+xx
   y=k*(x1-xx)+yy
 return

No hay comentarios: