Buenas!
Este será mi primer post de una serie de programas que estaré subiendo desarrollados en Visual Basic.net
Esta aplicación dibuja en un picturebox la grafica del seno o coseno, tu lo seleccionarás 
Te explicare en pocos pasos que es lo que se tiene que hacer.
Primero crea un formulario y en él introduce los siguientes objetos con sus respectivas propiedades:
- System.Windows.Forms.Picturebox
- name=pb
- borderStyle=FixedSingle
- Dock=top
- System.Windows.Forms.Label
- name=label1
- text=Valores en X
- System.Windows.Forms.Textbox
- name=txtx
- System.Windows.Forms.RadioButton
- name=rb_seno
- text=Seno
- System.Windows.Forms.RadioButton
- name=rb_coseno
- text=Coseno
- System.Windows.Forms.Button
- name=cmd_dibujar
- text=Dibujar
te quedará algo parecido a esto:

El codigo es el siguient:
-
Public Class Form1
-
Dim valores(20000) As Double
-
Dim xx, puntoX1, puntoY1, puntoX2, puntoY2 As Double
-
Dim con As Integer = 0
-
Private Sub txtx_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtx.TextChanged
-
If txtx.Text <> "" Then
-
cmd_dibujar.Enabled = True
-
Else
-
cmd_dibujar.Enabled = False
-
End If
-
End Sub
-
-
Private Sub cmd_dibujar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmd_dibujar.Click
-
Dim dibujo As Graphics = pb.CreateGraphics 'declaramos area de dibujo
-
Dim lapiz As New Pen(Color.Black) 'declaramos lapiz
-
-
Dim xcentro As Integer = pb.Width / 2 'calculamos cordenadas centrales
-
Dim ycentro As Integer = pb.Height / 2
-
-
dibujo.TranslateTransform(xcentro, ycentro) 'tranladamos cordenadas al centro
-
dibujo.ScaleTransform(1, -1) 'convertimos a cordenadas normales
-
-
'DIBUJAMOS EJES X-Y
-
dibujo.DrawLine(lapiz, xcentro * -1, 0, xcentro * 2, 0) 'eje X
-
dibujo.DrawLine(lapiz, 0, ycentro, 0, ycentro * -1) 'eje Y
-
-
'DIBUJAMOS PUNTOS +X
-
Dim a As Integer
-
For a = 0 To xcentro * 2 Step (pb.Width / (Val(txtx.Text) * 2))
-
dibujo.DrawLine(lapiz, a, 5, a, -5)
-
Next
-
-
'DIBUJAMOS PUNTOS -X
-
For a = 0 To xcentro * -1 Step (-1 * pb.Width / (Val(txtx.Text) * 2))
-
dibujo.DrawLine(lapiz, a, 5, a, -5)
-
Next
-
-
'DIBUJAMOS GRAFICA SENO-COSENO
-
If rb_seno.Checked = True Then 'SENO
-
con = 0
-
For xx = xcentro * -1 To xcentro * 2 Step 0.1
-
valores(con) = System.Math.Sin(xx)
-
con = con + 1
-
Next
-
-
con = 1
-
For xx = (xcentro * -1) + 0.1 To xcentro * 2 Step 0.1 'iniciamos una cordenada X adelante
-
'sacamos coordenadas 1
-
puntoX1 = (xx - 0.1) * (pb.Width / (Val(txtx.Text) * 2))
-
puntoY1 = valores(con - 1) * ycentro
-
-
'sacamos coordenadas 2
-
puntoX2 = xx * (pb.Width / (Val(txtx.Text) * 2))
-
puntoY2 = valores(con) * ycentro
-
-
dibujo.DrawLine(lapiz, Convert.ToSingle(puntoX1), Convert.ToSingle(puntoY1), Convert.ToSingle(puntoX2), Convert.ToSingle(puntoY2))
-
con = con + 1
-
Next
-
Else 'COSENO
-
con = 0
-
For xx = xcentro * -1 To xcentro * 2 Step 0.1
-
valores(con) = System.Math.Cos(xx)
-
con = con + 1
-
Next
-
-
con = 1
-
For xx = (xcentro * -1) + 0.1 To xcentro * 2 Step 0.1 'iniciamos una cordenada X adelante
-
'sacamos coordenadas 1
-
puntoX1 = (xx - 0.1) * (pb.Width / (Val(txtx.Text) * 2))
-
puntoY1 = valores(con - 1) * ycentro
-
-
'sacamos coordenadas 2
-
puntoX2 = xx * (pb.Width / (Val(txtx.Text) * 2))
-
puntoY2 = valores(con) * ycentro
-
-
dibujo.DrawLine(lapiz, Convert.ToSingle(puntoX1), Convert.ToSingle(puntoY1), Convert.ToSingle(puntoX2), Convert.ToSingle(puntoY2))
-
con = con + 1
-
Next
-
End If
-
End Sub
-
End Class
El codigo está comentado, pero lo explicare en pocas palabras.
En teoría lo que hago es crear un vector con un valor en Y para cada valor en X calculada con la funcion Seno o Coseno de la clase System.Math, ya después de obtener el vector simplemente dibujamos una serie de puntos muy diminutos (casi pixeles) y trazamos una linea entre punto y punto, provocando el efecto de linea continua y curvada. Simple no?
Es decir que mi vector (para la grafica del seno) quedaría algo parecido a esto:

Y como podras darte cuenta, el valor de X va incrementandose hasta el infinito de 0.1 en 0.1 pero el valor de Y solo sube y baja en un rango de -1 a 1, por lo tanto se nos facilita obtener su valor y primeramente guardarlo en un vector y despues simplemente graficar una serie muy grande de puntitos, que desde lejos (tu sentado frente a la computadora) se verá como una linea continua y no como una serie de puntos que es en realidad lo que son... Aqui te dejo una imagen para que compruebes como la funcion Seno y Coseno varian entre -1 y 1 en Y....

Cualquier duda comentala aquí por favor
Aquí te dejo los archivos para que los descargues
saludos!