Para dibujar el diagrama de un modo del monitor, usted necesitará el paquete
gnuplot (un lenguaje de representación gráfica gratuito para sistemas operativos
UNIX) y la herramienta modeplot
, un script para gnuplot que representa
gráficamente el diagrama de las características de su monitor, introducidas
como opciones en línea de comandos.
Esta es una copia de modeplot
:
#!/bin/sh # # modeplot -- genera un gráfico en modo X de los modos de monitor disponibles # # Utilice `modeplot -?' para ver las opciones de control. # # ($Id: video-modes.sgml,v 1.5 1998/02/21 02:23:11 esr Exp $) # Descripción del monitor. Ancho de banda en MHz, frecuencias horizontales en KHz # y verticales en Hz. TITLE="Viewsonic 21PS" BANDWIDTH=185 MINHSF=31 MAXHSF=85 MINVSF=50 MAXVSF=160 ASPECT="4/3" vesa=72.5 # Mínima velocidad de refresco recomendada por VESA while [ "$1" != "" ] do case $1 in -t) TITLE="$2"; shift;; -b) BANDWIDTH="$2"; shift;; -h) MINHSF="$2" MAXHSF="$3"; shift; shift;; -v) MINVSF="$2" MAXVSF="$3"; shift; shift;; -a) ASPECT="$2"; shift;; -g) GNUOPTS="$2"; shift;; -?) cat <<EOF opciones de control de modeplot: -t "<descripción>" nombre del monitor por defecto: "Viewsonic 21PS" -b <nn> ancho de banda en MHz por defecto: 185 -h <min> <max> FSH mín y máx (KHz) por defecto: 31 85 -v <min> <max> FSV mín y máx (Hz) por defecto: 50 160 -a <razón de aspecto> razón ancho/alto por defecto: 4/3 -g "<opciones>" opciones para gnuplot Las opciones -b, -h y -v son obligatorias, -a, -t, -g son opcionales. Uste puede utilizar -g para redireccionar la salida de gnuplot para que el gráfico de modo se imprima en su impresora. Vea gnuplot(1) para más detalles. La utilidad modeplot fue creada por Eric S. Raymond <esr@thyrsus.com> basada en el análisis y código de Martin Lottermoser <Martin.Lottermoser@mch.sni.de>. La traducción de esta utilidad al castellano fue realizada por David Marín Carreño <davefx@bigfoot.com>. Esta es la $Revision: 1.5 $ de modeplot. EOF exit;; esac shift done gnuplot $GNUOPTS <<EOF set title "Gráfico de modos de $TITLE" # Números mágicos. Desafortunadamente, el dibujo es muy sensible a los cambios # que se realicen en estos, y pueden hacer que no se represente la realidad # en algunos monitores. Necesitamos fijar unos valores para conseguir # incluso una aproximación del diagrama de modos. Estos han salido de # investigar montones de valores en la base de datos ModeDB. F1 = 1.30 # factor para convertir la resolución horizontal en anchura de imagen F2 = 1.05 # factor para convertir la resolución vertical en altura de imagen # Definiciones de funciones (la multiplicación por 1.0 fuerza los cálculos en reales) ac = (1.0*$ASPECT)*F1/F2 refresh(hsync, dcf) = ac * (hsync**2)/(1.0*dcf) dotclock(hsync, rr) = ac * (hsync**2)/(1.0*rr) resolution(hv, dcf) = dcf * (10**6)/(hv * F1 * F2) # Pone etiquetas en los ejes set xlabel 'DCF (MHz)' set ylabel 'RR (Hz)' 6 # La coloca justo sobre el eje Y # Genera el diagrama set grid set label "AB" at $BANDWIDTH+1, ($MAXVSF + $MINVSF) / 2 left set arrow from $BANDWIDTH, $MINVSF to $BANDWIDTH, $MAXVSF nohead set label "FSV máx" at 1, $MAXVSF-1.5 set arrow from 0, $MAXVSF to $BANDWIDTH, $MAXVSF nohead set label "FSV mín" at 1, $MINVSF-1.5 set arrow from 0, $MINVSF to $BANDWIDTH, $MINVSF nohead set label "FSH mín" at dotclock($MINHSF, $MAXVSF+17), $MAXVSF + 17 right set label "FSH máx" at dotclock($MAXHSF, $MAXVSF+17), $MAXVSF + 17 right set label "VESA $vesa" at 1, $vesa-1.5 set arrow from 0, $vesa to $BANDWIDTH, $vesa nohead # style -1 plot [dcf=0:1.1*$BANDWIDTH] [$MINVSF-10:$MAXVSF+20] \ refresh($MINHSF, dcf) notitle with lines 1, \ refresh($MAXHSF, dcf) notitle with lines 1, \ resolution(640*480, dcf) title "640x480 " with points 2, \ resolution(800*600, dcf) title "800x600 " with points 3, \ resolution(1024*768, dcf) title "1024x768 " with points 4, \ resolution(1280*1024, dcf) title "1280x1024" with points 5, \ resolution(1600*1280, dcf) title "1600x1200" with points 6 pause 9999 EOF
Una vez que sepa que tiene modeplot
y el paquete gnuplot
en su máquina, necesitará saber las siguientes características
del monitor:
El programa de dibujo necesitará asumir algunos datos que no tienen por qué ser correctos. Este es el porqué de que el gráfico resultante es sólo una descripción grosso modo. Estos datos asumidos son:
modeplot
asume 4/3 por defecto, pero usted puede hacer que ésto
no sea así.
LIH = F1 * RH
LIV = F2 * RV
A ojo de buen cubero, tome F1 = 1,30 y F2 = 1,05 (vea frame "Calculando tamaños de imagen").
Ahora tome una frecuencia de sincronización particular, FSH. Asumiendo los datos que hemos expuesto, cada valor de frecuencia de píxel FRTV ya determina la tasa de refresco TR, esto es: para cada valor de FSH hay una función TR(FRTV). Esta función está definida así:
La tasa de refresco es igual a la velocidad de píxel dividida por el producto de los tamaños de imagen:
TR = FRTV / (LIH * LIV) (*)
Por otra parte, la longitud de imagen horizontal es igual a la velocidad de píxel dividida por la frecuencia horizontal de sincronización:
LIH = FRTV / FSH (**)
LIV puede hallarse a partir de LIH con los datos asumidos:
LIV = F2 * RV
= F2 * (RH / RA)
= (F2/F1) * LIH / RA (***)
Sustituyendo (**) y (***) en (*) obtenemos:
TR = FRTV / ((F2/F1) * LIH^2 / RA)
= (F1/F2) * RA * FRTV * (FSH/FRTV)^2
= (F1/F2) * RA * FSH^2 / FRTV
Para unas FSH, F1, F2 y RA fijas, esta es una hipérbola en nuestro gráfico. Dibujando sendas curvas para los valores mínimo y máximo de la frecuencia de sincronización horizontal, hemos obtenido los dos bordes restantes de la región permitida.
Las líneas rectas que cruzan la región hábil representan resoluciones particulares. Esto está basado en (*) y en lo segundo que hemos asumido:
TR = FRTV / (LIH * LIV) = FRTV / (F1 * RH * F2 * RV)
Dibujando esas líneas para todas las resolucines en las que se está interesado, se puede averiguar cuáles son las relaciones posibles entre resolución, frecuencia de píxel y tasa de refresco de las que el monitor es capaz, pero ello depende de la segunda ecuación asumida.
La herramienta modeplot
le proporciona de una manera fácil
de hacer esto. Teclee modeplot -?
para ver las opciones de
control. Una orden típica tendría este aspecto:
modeplot -t "Swan SW617" -b 85 -v 50 90 -h 31 58
La opción -b especifica el ancho de banda de vídeo; -v y -h establecen los rangos de frecuencia vertical y horizontal.
Cuando lea la salida de modeplot
, siempre recuerde que sólo da
una descripción aproximada. Por ejemplo, no tiene en cuenta las
limitaciones de LIH resultantes de una anchura mínima requerida para
el pulso de sincronización, y solo puede ser preciso hasta donde llegan
las condiciones asumidas. Por lo tanto, no es en absoluto un sustituto
para unos cálculos detallados (que requieren algo de "magia oscura")
tal y como se han desarrollado en
Resumiendo.
Sin embargo, podría mostrarle de manera más intuitiva qué es posible y
qué factores se involucran.