Red de conocimiento informático - Problemas con los teléfonos móviles - Zemax TV distorsiona la macro ZPL

Zemax TV distorsiona la macro ZPL

! La macro de cálculo de distorsión de la red debe ser escrita por Bay Bay movida, pero no se puede encontrar al autor original.

! La relación de aspecto de entrada es solo una aproximación, y el ancho y alto del telémetro no son exactamente iguales que el ancho y alto reales.

! ¡Cerrar ventana

! Ingrese los datos de relación de aspecto del chip

Ratio=0

Ingrese "Establezca la relación de aspecto (H/V) del chip. El valor predeterminado es 4/3=1.33333:", tasa .

Si relación==0

? Tipo de cambio=1.33333

endif

Formato 10.4

! Calcular la proporción de chips

VR = SQRT(1/(1+tasa * tasa))

HR = tasa*VR

! ¿Obtener vista máxima

NFLD_=NFLD()

MXF=0

Para I=1,NFLD_,1

? ¿Qué pasa si ABSO(FLDY(I))>MXF? Entonces MXF=ABSO(FLDY(I))

¡Entonces

! ¡Obtén el número de superficies

N=NSUR()

! Seguimiento paraxial

Apertura paraxial

Ray tracing HR, VR, 0, 0, pwav()

Y_max=ABSO(RAGY(N))

X_max=ABSO(RAGX(N))

¡El eje de distribución está apagado

! ¡Calcule la relación paraxial

prate=x_max/y_max

! Diseño de dibujo

Cartografía

Título "Distorsión de cuadrícula"

xmx=xmax()

xmn=xmin()

p>

ymx=ymax()

ymn=ymin()

xwidth=xmx-xmn

ywidth=ymx-ymn

! Calcula la altura y el ancho del área de dibujo

Vmm=0.6*ywidth

Hmm=prate*Vmm

! Dibuja un marco

xleft =xmn+(xwidth-Hmm)/2

xrigh =xmx-(xwidth-Hmm)/2

ytopp =ymn+(0.1 *ywidth)

ybott =ymn+(0.7*ywidth)

x_center=xleft+(xrigh-xleft)/2

y_center=ytopp+(ybott-ytopp) /2

Línea xizquierda, ytopp, xrigh, ytopp

Línea xrigh, ytopp, xrigh, ybott

Línea xrigh, ybott, xleft, ybott

Línea xleft, ybott, xleft, ytopp

! Dibuje una cuadrícula (cuadrícula de altura de imagen paraxial) ../20, y dibuje la cuadrícula de acuerdo con las alturas paraxiales horizontales y verticales, con las proporciones interiores aproximando las alturas paraxiales.

incx=Hmm/20

incy=Vmm/20

¿Porque i=1, 19, 1

? línea (xmn+(xwidth-Hmm)/2+incx*i),ymn+(0.7*ywidth),(xmn+(xwidth-Hmm)/2+incx*i),ymn+(0.1*ywidth)

? línea (xmn+(xwidth-Hmm)/2),(ymn+(0.1*ywidth)+incy*i),(xmx-(xwidth-Hmm)/2),(ymn+(0.1*ywidth)+incy*i)

Entonces

SEVECSIZE(500)

Count=1

! ¿Calcular la altura real de la imagen

Para ii=-1, 1, 0,1

? Para jj=-1, 1, 0.1

Rastreo de rayos ii*HR, jj*VR, 0, 0, pwav()

rY_max=RAGY(N)

rX_max=RAGX(N)

VEC1(cuenta)=ry_max

VEC2(cuenta)=rx_max

cuenta=cuenta+1

? Entonces

¡Entonces

! Dibuja un gráfico de cuadrícula alta de la imagen real

Color 5

Para i=1, cuenta, 21

oldx = x _ center+ve C2(I )*(Hmm/2)/x _ max

oldy = y _ center-vec 1(I)*(Vmm/2)/y _ max

? ¿Para j=1, 20, 1

? nuevox = x _ centro+ve C2(I+j)*(Hmm/2)/x _ max

? newy = y _ center-vec 1(I+j)*(Vmm/2)/y _ max

? ¿Línea oldx, oldy, newx, newy

? antiguox=nuevox

? viejo=nuevo

? Entonces

Entonces

Porque i=1, 21, 1

viejox = x _ centro+ve C2(I)*(Hmm/2)/x _ max

oldy = y _ center-vec 1(I)*(Vmm/2)/y _ max

? Para j=21, cuente -21, 21

? nuevox = x _ centro+ve C2(I+j)*(Hmm/2)/x _ max

? newy = y _ center-vec 1(I+j)*(Vmm/2)/y _ max

? ¿Línea oldx, oldy, newx, newy

? antiguox=nuevox

? viejo=nuevo

? Entonces

¡Entonces

! Anotar...

Color 1

glensname

gdate

UNT = unidad()

if ( UNT==0) Entonces UNTS$= "mm"

Si (UNT==1) Entonces UNTS$= "cm"

Si (UNT==2) Entonces UNTS$ = "pulgadas"

Si (UNT==3) entonces UNTS$= "metros"

GTEXT XMN+0.02 * ancho x, YMN+0.91 * ancho y, 0 ," H:V(sen):"

GTEXT XMN+0.02*XWIDTH, YMN+0.945*YWIDTH, 0, "Imagen (P):"

GTEXT XMN+0

.13*XWIDTH, YMN+0.91*YWIDTH, 0, $str(HR)

GTEXT XMN+0.28*XWIDTH, YMN+0.91*YWIDTH, 0, $str(VR)

GTEXT XMN+0.28*XWIDTH, YMN+0.91*YWIDTH, 0, " W "

GTEXT p>GTEXT XMN+0.13*XWIDTH, YMN+0.945*YWIDTH, 0, $str(X_MAX* 2)

GTEXT *2)

GTEXT XMN+0.28*XWIDTH, YMN+0.945*YWIDTH, 0, " W "

GTEXT 0, "alto "

Ftp=FTYP()

if (Ftp == 0)

gtext xmn+0.47*xwidth, ymn+0.91*ywidth, 0, " grado"

Otro

gtext xmn+0.47*xwidth, ymn+0.91*ywidth, 0, UNTS USD

endif

gtext xmn+0.47*xwidth,ymn+0.945*ywidth,0,unts

Color 2

gtext x_center-xwidth*0.13-,ymn+0.75* ywidth, 0, ""

Color 3

GTEXT xmx-(x ancho-Hmm)/2+0.03 * x ancho, YMN+0.7*YWIDTH, 90, "Precaución: "

GTEXT xmx-(x ancho-Hmm)/2+0.06 * x ancho, YMN+0.7*YWIDTH, 90, "Si el desplazamiento o el título, la cuadrícula es"

GTEXT xmx-(xwidth-Hmm) )/2+0.09 * xwidth, YMN+0.7*YWIDTH, 90, "¡Sí, pero la fecha es incorrecta!"

! -

! Calcular distorsión de TV

Color 1

Eje de rango desactivado

Rastreo de rayos HR, VR, 0, 0

YC=RAGY(N )

XC = RAGX(N)

Rastreo de rayos HR, 0, 0, 0

H=RAGX(N)

Rayo rastreo 0, VR, 0, 0

V=RAGY(N)

TVH = (YC V)/YC * 100

TVV = (XC- H)/XC * 100

gtext x _ center-xwidth * 0.18, ymn+0.05*ywidth, 0, "Distorsión de TV (H)"

gtext x_center+ xwidth*0.025, ymn+0.05*ywidth, 0, $str(TVH)

gtext x _ center+x ancho * 0.175, ymn+0.05*ywidth, 0, " % "

gtext x _ center-(Hmm)/2-0.05 * ywidth, ymn+0.64*ywidth, 90, "TV distorsión (V)"

gtext x _ center-(Hmm)/2- 0.05 * ywidth, ymn+0.37*ywidth, 90, $cadena(TVV)<

/p>

gtext x _ center-(Hmm)/2-0.05 * ywidth, ymn+0.17*ywidth, 90, " % "

Color 0

Línea 0.01 * x ancho, 0.035 * y ancho, 0.05 * ancho, 0.035 * y ancho

gtext 0.06*xwidth, 0.035*ywidth, 0, "paraxial"

Color 5

p>

Línea 0.01*xwidth, 0.07*ywidth, 0.05*width, 0.07*ywidth

gtext 0.06*xwidth, 0.07*ywidth, 0, "número real"

Gráficos desactivados

Formato 5.3

Imprimir "?"

Imprimir "orientación vertical/horizontal:", 1/velocidad

Imprimir "?"

Imprimir "Distorsión TV vertical (%):, tvv,"? %"

Imprimir "? ”

Imprimir “La distorsión horizontal de la TV es (%):? ",tvh",? %"

Imprimir "? "

Imprimir" "