Capitulos de este wiki
  1. 1 declaración de intenciones
  2. 2 presentación
  3. 3 introducción a java
  4. 4 Origen de JAVA
  5. 5 Características de JAVA
  6. 6 HotJava
  7. 7 JAVA para aplicaciones corporativas
  8. 8 instalación del jdk
  9. 9 Windows
  10. 10 Solaris
  11. 11 Linux
  12. 12 Compilación sin JDK
  13. 13 conceptos básicos de java
  14. 14 Programación en JAVA
  15. 15 Control del Flujo
  16. 16 Clases
  17. 17 Variables y Métodos de Instancia
  18. 18 Alcance de Objetos y Reciclado de Memoria
  19. 19 Herencia
  20. 20 Control de Acceso
  21. 21 Variables y Métodos Estaticos
  22. 23 Clases Abstractas
  23. 24 Interfaces
  24. 25 Métodos Nativos
  25. 26 Paquetes
  26. 27 Referencias
  27. 28 Punteros y Referencias C
  28. 29 Referencias en Java
  29. 30 Referencias y Arrays
  30. 31 Referencias y Listas
  31. 32 Punteros C/C++ y Referencias Java
  32. 33 programas básicos en java
  33. 34 Una mínima aplicación en Java
  34. 35 Compilación y Ejecución de HolaMundo
  35. 36 El visor de Applets de Sun (appletviewer)
  36. 37 Arquitectura de appletviewer
  37. 38 Métodos de appletviewer
  38. 39 Funciones de menú de appletviewer
  39. 40 Un Applet basico en Java
  40. 41 Compilación de un Applet
  41. 42 La marca APPLET de html
  42. 43 Atributos de APPLET
  43. 44 Paso de parametros a Applets
  44. 45 Tokens en parametros de llamada
  45. 46 El parametro ARCHIVE
  46. 47 Depuración general
  47. 48 Ciclo de vida de un Applet
  48. 49 Protección de Applets
  49. 50 Escribir Applets Java
  50. 51 La aplicación Fecha (Aproximación a OOP)
  51. 52 el depurador de java - jdb
  52. 54 La clase Math
  53. 55 La clase Character
  54. 56 La clase Float
  55. 57 La clase Double
  56. 58 La clase Integer
  57. 59 La clase Long
  58. 60 La clase Boolean
  59. 61 La clase String
  60. 62 La clase StringBuffer
  61. 63 Uso de Conversiones
  62. 64 abstract window toolkit (awt)
  63. 65 Interface de Usuario
  64. 66 Estructura del AWT
  65. 67 Componentes y Contenedores
  66. 68 Tipos de Componentes
  67. 69 BorderLayout
  68. 70 CardLayout
  69. 71 CheckboxGroup
  70. 72 Color
  71. 73 Component
  72. 74 Button - Botones
  73. 75 Canvas
  74. 76 Checkbox
  75. 77 Choice
  76. 78 Container
  77. 79 Label - Etiquetas
  78. 80 List - Listas
  79. 81 Scrollbar - Barras de desplazamiento
  80. 82 TextComponent
  81. 83 Fijar el tamaño preferido
  82. 84 La clase Event
  83. 85 FlowLayout
  84. 86 Cambio de fuente de caracteres
  85. 87 GridLayout
  86. 88 GridBagLayout
  87. 89 Uso de Insets
  88. 90 MenuComponent
  89. 91 LayoutManager
  90. 92 Diseño de Componentes propios
  91. 93 Creación de Aplicaciones con AWT
  92. 94 Crear el Marco de la aplicación (Frame)
  93. 95 Inicializar Fuentes, Colores, Layouts y demas recursos
  94. 96 Crear menús y Barras de Menús
  95. 97 Crear los controles, dialogos, ventanas, etc.
  96. 98 Layouts
  97. 99 FlowLayout
  98. 100 BorderLayout
  99. 101 GridLayout
  100. 102 GridBagLayout
  101. 103 CardLayout
  102. 104 Crear un Layout propio
  103. 105 Control de Eventos
  104. 106 La clase Event
  105. 107 Tipos de Eventos
  106. 108 Generación y Propagación de Eventos
  107. 109 Métodos de Control de Eventos
  108. 110 Action_Event
  109. 111 Mejorar el Diseño de Interfaces
  110. 112 Cambio de Font de Caracteres
  111. 113 Colores de Fondo y Texto
  112. 114 Fijar el Tamaño Preferido
  113. 115 Uso de Insets
  114. 116 Habilitar y Deshabilitar Componentes
  115. 117 Botón Grafico
  116. 118 gráficos
  117. 119 Métodos para Dibujos
  118. 120 Líneas
  119. 121 Rectangulos
  120. 122 Círculos, Elipses
  121. 123 excepciones en java
  122. 124 Funciones Graficas
  123. 125 Manejo de Excepciones
  124. 126 Fractales
  125. 127 Generar Excepciones en Java
  126. 128 Líneas Flotantes
  127. 129 Excepciones Predefinidas
  128. 130 Métodos para Imagenes
  129. 131 Crear Excepciones Propias
  130. 132 Doble Buffering de Graficos
  131. 133 Capturar Excepciones
  132. 134 Nuevas Clases para Dibujo
  133. 135 Propagación de Excepciones
  134. 136 La Clase MediaTracker
  135. 137 threads y multithreading
  136. 138 Sonido en Java
  137. 139 Flujo en Programas
  138. 140 Entrada por Ratón
  139. 141 Creación y Control de Threads
  140. 142 Arrancar y Parar Threads
  141. 143 Suspender y Reanudar Threads
  142. 144 Estados de un Thread
  143. 145 Scheduling
  144. 146 Prioridades, demonios...
  145. 147 Ejemplo de Animación
  146. 148 Comunicación entre Threads
  147. 149 métodos nativos
  148. 150 Escribir Código Java
  149. 151 Compilar el Código Java
  150. 152 Crear el fichero de Cabecera
  151. 153 Crear el fichero de Stubs
  152. 154 Escribir la función C
  153. 155 Crear la Librería Dinamica
  154. 156 Ejecutar el Programa
  155. 157 entrada / salida estándar
  156. 158 La clase System
  157. 159 Clases comunes de Entrada/Salida
  158. 160 ficheros en java
  159. 161 Ficheros
  160. 162 Streams de Entrada
  161. 163 Streams de Salida
  162. 164 Ficheros de Acceso Aleatorio
  163. 165 comunicaciones en java
  164. 166 Comunicaciones en Unix
  165. 167 Sockets
  166. 168 Diferencias entre Sockets Stream y Datagrama
  167. 169 Uso de Sockets
  168. 170 Dominios de Comunicaciones
  169. 171 Modelo de Comunicaciones con Java
  170. 172 Apertura de Sockets
  171. 173 Creación de Streams
  172. 174 Cierre de Sockets
  173. 175 Mínimo Cliente SMTP
  174. 176 Servidor de Eco
  175. 177 Cliente/Servidor TCP/IP
  176. 178 Servidor Simple de HTTP
  177. 179 Red en Windows '95 (sin conexión)
  178. 180 Clases Útiles en Comunicaciones
  179. 181 arquitectura mvc en java
  180. 182 La Arquitectura MVC
  181. 183 Observador y Observable
  182. 184 Cómo utilizar Observer y Observable
  183. 185 Ejemplo de aplicación MVC
  184. 186 aplicaciones en java
  185. 187 Etiqueta
  186. 188 Reloj Digital
  187. 189 Persiana
  188. 190 Solapas
  189. 191 Transparencia
  190. 192 Calculadora
  191. 193 Cuenta-Kilómetros
  192. 194 Cartel
  193. 195 final y agradecimientos
  194. 196 java y matlab

Tutorial de Java - Funciones Graficas

124 - Funciones Graficas

[editar]
Tutorial creado por Agustín Froufe . Extraido de: http://www.publispain.com/supertutoriales/
08 de Mayo de 2007

A través de líneas también se pueden realizar figuras más complicadas que resulten de la representación gráfica de funciones matemáticas. No pretendemos entrar en complicadas disquisiciones matemáticas, sino presentar algunas de las particularidades de los gráficos y Java. Vamos a presentar el código siguiente, Grafico1.java, que pintará la curva de la función seno de izquierda a derecha de la ventana:

import java.awt.*;
 import java.applet.Applet;
 
 public class Grafico1 extends Applet {
     int x0,xN,y0,yN;
 
     public void init() {
         Dimension d = size();
 
         x0 = y0 = 0;
         xN = d.width-1;
         yN = d.height-1;
         }
 
     public void paint( Graphics g ) {
         for( int x=x0; x < xN; x++ )
             g.drawLine( x,(int)(yN*Math.sin(x)),
                 x+1,(int)(yN*Math.sin(x+1)) );
         }
     }
 

El corazón del funcionamiento del applet se encuentra en el bucle incluido en el método paint():

for( int x=x0; x < xN; x++ )
     g.drawLine( x,(int)(yN*Math.sin(x)),x+1,(int)(yN*Math.sin(x+1)));
 

El bucle va desplazándose a través de cada pixel de la pantalla en el eje x, y en cada una de las posiciones, calcula el seno para ese pixel. También calcula el seno del pixel siguiente y pinta una línea que une esos dos puntos. Debido a que el seno de un número real está siempre comprendido entre 1 y -1, escalamos el valor de y con yN. Y por fin hacemos un casting de los valores del seno en el eje y porque son flotantes fundamentalmente y el método drawLine() necesita enteros.

El applet anterior funciona correctamente, pero adolece de dos dos problemas: Primero, los senos son operaciones en coma flotante, luego para que el applet tenga realmente utilidad necesitamos utilizar números en coma flotante. Segundo, el sistema de coordenadas que maneja el applet va desde el punto (0,0), de la esquina superior-izquierda hasta la inferior-derecha. Pero el sistema normal de coordenadas Cartesianas empieza a contar desde la esquina inferior-izquierda. Lo que haremos será mover el origen al centro del applet y transformar las coordenadas del eje y para que vayan en las direcciones adecuadas.

La solución a los dos problemas anteriores puede tomar un montón de caminos diferentes, sin embargo, la clave se encuentra en separar los datos de lo que es la pantalla. Es decir, vamos a realizar nuestros cálculos matemáticos suponiendo que estamos en el espacio de un rectángulo en coordenadas cartesianas y, por otro lado, tomaremos a la pantalla como un rectángulo de puntos de ancho y tamaño fijos. Así podremos realizar los cálculos en el plano de los ejes cartesianos y presentarlos en el espacio reducido de la ventana del applet. Necesitaremos pues, un método para convertir un punto de la ventana del applet en un punto en el mundo cartesiano, y otro que haga la función contraria. El código siguiente, GraficoSeno.java, hace todo esto:

import java.awt.*;
 import java.applet.Applet;
 
 public class GraficoSeno extends Applet {
     int x0,xN,y0,yN;
     double xmin,xmax,ymin,ymax;
     int apAncho,apAlto;
 
     public void init() {
         Dimension d = size();
         apAncho = d.width;
         apAlto = d.height;
 
         x0 = y0 = 0;
         xN = apAncho-1;
         yN = apAlto-1;
         xmin = -10.0;
         xmax = 10.0;
         ymin = -1.0;
         ymax = 1.0;
         }
 
     public void paint( Graphics g ) {
         double x1,y1,x2,y2;
         int j1,j2;
 
         j1 = ValorY( 0 );
         for( int i=0; i < apAncho; i++ )
             {
             j2 = ValorY( i+1 );
             g.drawLine( i,j1,i+1,j2 );
             j1 = j2;
             }
         }
 
     private int ValorY( int valor ) {
         double x,y;
         int retorno;
 
         // Cartesianas equivalentes al punto de la pantalla
         x = (valor * (xmax-xmin) / (apAncho-1)) + xmin;
         // Calculamos el seno de ese punto
         y = Math.sin( x );
         // Escalamos la coordenada y dentro de los limites de la ventana
         retorno = (int)( (y-ymin) * (apAlto-1) / (ymax-ymin) );
         // Reconvertinos el valor cartesiano a punto de pantalla
         retorno = apAlto - retorno;
 
         return( retorno );
         }
     }
 

Ejecutando este applet, podremos observar que lo que se presenta ya se parece muchísimo más a la imagen que todos conocemos de la onda senoidal.

Grafico onda senoidal
[editar]

199 opiniones

Manda cojoninos

Ayer me funciona java j2se runtime environment 5.0 . Hoy me dice que están deshabilitados los jula-op ( applets de java ). Voy a java sun microsystem y me lleva a otra web que me pide el correo, no se lo cree ni borracho. Pues eso , ¿ me duele la cabeza, por favor , una aspirina me podeis dar ?. Sigo con la jabalina.
hjjkbkj

visca barça
Rogelio

Suena bien como teoria, pero para ser tutorial esta incompleto pues deberia mostrar tambien codigo... los que entramos a este tema generalmente buscamos mas que lo que nos muestras aqui, asi que como sugerencia te diria que cuando subas información sea completa, esto para la mejora de tu pagina, por el intento Gracias!!
jaja

jaja
WTF

What is this i dnt understand u suck men!!
1 2 3 4 5 6 7 ... 40 | siguiente >

Autor y licencia de 'Tutorial de Java'


Tutorial de Agustín Froufe. Extraido de: http://www.publispain.com/supertutoriales/ CopyLeft
Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.
cacheado