elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Pirámide 3D sin usar apis
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: Pirámide 3D sin usar apis  (Leído 6,157 veces)
ssccaann43 ©


Desconectado Desconectado

Mensajes: 792


¬¬


Ver Perfil
Che miren este plano
« Respuesta #10 en: 5 Noviembre 2008, 21:20 pm »

Pues miren este plano:

Solo agreguen un Timer al Form: Timer1

Y peguen este code.

Código
  1. Option Explicit
  2.  
  3. Dim X As Integer, s As Integer
  4. Dim max As Boolean
  5. Dim A As Integer
  6.  
  7. Private Type Punto
  8.    X       As Single
  9.    Y       As Single
  10.    IncX    As Double
  11.    IncY    As Double
  12. End Type
  13.  
  14. Private Matriz(1 To 2, 1 To 2) As Punto
  15.  
  16. Private Declare Function SetWindowPos Lib "user32" ( _
  17.    ByVal hwnd As Long, _
  18.    ByVal hWndInsertAfter As Long, _
  19.    ByVal X As Long, _
  20.    ByVal Y As Long, _
  21.    ByVal cx As Long, _
  22.    ByVal cy As Long, _
  23.    ByVal wFlags As Long) As Long
  24.  
  25. Private Const SW_SHOWNOACTIVATE = 4
  26. Private Const SWP_SHOWWINDOW = &H40
  27. Private Const SWP_NOACTIVATE = &H10
  28. Private Sub DibujaPlanos()
  29.    Dim auxX    As Integer
  30.    Dim auxY    As Integer
  31.    Dim auxI    As Integer
  32.    Dim auxJ    As Integer
  33.    Dim P1      As Punto
  34.    Dim P2      As Punto
  35.    Dim P3      As Punto
  36.    Dim P4      As Punto
  37.  
  38.    For auxX = 1 To UBound(Matriz, 1) - 1
  39.        For auxY = 1 To UBound(Matriz, 2) - 1
  40.            P1 = Matriz(auxX, auxY)
  41.            P2 = Matriz(auxX + 1, auxY)
  42.            P3 = Matriz(auxX + 1, auxY + 1)
  43.            P4 = Matriz(auxX, auxY + 1)
  44.            Line (P1.X, P1.Y)-(P2.X, P2.Y), vbGreen
  45.            Line (P2.X, P2.Y)-(P3.X, P3.Y), vbGreen
  46.            Line (P3.X, P3.Y)-(P4.X, P4.Y), vbGreen
  47.            Line (P4.X, P4.Y)-(P1.X, P1.Y), vbGreen
  48.            auxJ = 10
  49.            For auxI = 1 To auxJ
  50.                Line (P1.X + (P2.X - P1.X) * (auxI / auxJ), _
  51.                      P1.Y + (P2.Y - P1.Y) * (auxI / auxJ))- _
  52.                      (P4.X + (P3.X - P4.X) * (auxI / auxJ), _
  53.                      P4.Y + (P3.Y - P4.Y) * (auxI / auxJ)), vbGreen
  54.  
  55.                Line (P2.X + (P3.X - P2.X) * (auxI / auxJ), _
  56.                      P2.Y + (P3.Y - P2.Y) * (auxI / auxJ))- _
  57.                      (P1.X + (P4.X - P1.X) * (auxI / auxJ), _
  58.                      P1.Y + (P4.Y - P1.Y) * (auxI / auxJ)), vbGreen
  59.  
  60.            Next auxI
  61.        Next auxY
  62.    Next auxX
  63. End Sub
  64.  
  65. Private Sub Form_Activate()
  66.  
  67.    Call Form_DblClick
  68.  
  69. End Sub
  70.  
  71. Private Sub Form_Click()
  72.    End
  73. End Sub
  74.  
  75.  
  76. Private Sub Form_DblClick()
  77.    Dim auxX    As Integer
  78.    Dim auxY    As Integer
  79.  
  80.    'Me.Cls
  81.  
  82.    For auxX = 1 To UBound(Matriz, 1)
  83.        For auxY = 1 To UBound(Matriz, 2)
  84.            Matriz(auxX, auxY).X = Int(Rnd * (Me.Width - 120))
  85.            Matriz(auxX, auxY).Y = Int(Rnd * (Me.Height - 405))
  86.            'Matriz(auxX, auxY).X = ((Me.Width - 120) \ (UBound(Matriz, 1) - 1)) * (auxX - 1)
  87.            'Matriz(auxX, auxY).Y = ((Me.Height - 405) \ (UBound(Matriz, 2) - 1)) * (auxY - 1)
  88.            Matriz(auxX, auxY).IncX = Int(Rnd * 6) * 15 * IIf(Int(Rnd * 2) = 1, 1, -1)
  89.            Matriz(auxX, auxY).IncY = Int(Rnd * 6) * 15 * IIf(Int(Rnd * 2) = 1, 1, -1)
  90.        Next auxY
  91.    Next auxX
  92.  
  93.    Call DibujaPlanos
  94.  
  95. End Sub
  96.  
  97. Private Sub Form_KeyPress(KeyAscii As Integer)
  98.    End
  99. End Sub
  100.  
  101. Private Sub Form_Load()
  102.    Me.BackColor = 0
  103.    Me.WindowState = 2
  104.    Timer1.Interval = 1
  105.    Randomize
  106. End Sub
  107.  
  108. Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
  109. 'End
  110. End Sub
  111.  
  112. Private Sub Timer1_Timer()
  113.    Dim auxX    As Integer
  114.    Dim auxY    As Integer
  115.    Dim auxI    As Integer
  116.    Dim auxJ    As Integer
  117.    Dim P1      As Punto
  118.    Dim P2      As Punto
  119.    Dim P3      As Punto
  120.    Dim P4      As Punto
  121.  
  122. '''    Me.Cls
  123.  
  124.    For auxX = 1 To UBound(Matriz, 1) - 1
  125.        For auxY = 1 To UBound(Matriz, 2) - 1
  126.            P1 = Matriz(auxX, auxY)
  127.            P2 = Matriz(auxX + 1, auxY)
  128.            P3 = Matriz(auxX + 1, auxY + 1)
  129.            P4 = Matriz(auxX, auxY + 1)
  130.            Line (P1.X, P1.Y)-(P2.X, P2.Y), Me.BackColor
  131.            Line (P2.X, P2.Y)-(P3.X, P3.Y), Me.BackColor
  132.            Line (P3.X, P3.Y)-(P4.X, P4.Y), Me.BackColor
  133.            Line (P4.X, P4.Y)-(P1.X, P1.Y), Me.BackColor
  134.            auxJ = 10
  135.            For auxI = 1 To auxJ
  136.                Line (P1.X + (P2.X - P1.X) * (auxI / auxJ), _
  137.                      P1.Y + (P2.Y - P1.Y) * (auxI / auxJ))- _
  138.                      (P4.X + (P3.X - P4.X) * (auxI / auxJ), _
  139.                      P4.Y + (P3.Y - P4.Y) * (auxI / auxJ)), Me.BackColor
  140.                Line (P2.X + (P3.X - P2.X) * (auxI / auxJ), _
  141.                      P2.Y + (P3.Y - P2.Y) * (auxI / auxJ))- _
  142.                      (P1.X + (P4.X - P1.X) * (auxI / auxJ), _
  143.                       P1.Y + (P4.Y - P1.Y) * (auxI / auxJ)), Me.BackColor
  144.            Next auxI
  145.        Next auxY
  146.    Next auxX
  147.  
  148.    For auxX = 1 To UBound(Matriz, 1)
  149.        For auxY = 1 To UBound(Matriz, 2)
  150.            If (Matriz(auxX, auxY).X + Matriz(auxX, auxY).IncX) > Me.Width - 120 Then
  151.                Matriz(auxX, auxY).IncX = Matriz(auxX, auxY).IncX * -1
  152.            ElseIf (Matriz(auxX, auxY).X + Matriz(auxX, auxY).IncX) < 0 Then
  153.                Matriz(auxX, auxY).IncX = Matriz(auxX, auxY).IncX * -1
  154.            End If
  155.            Matriz(auxX, auxY).X = Matriz(auxX, auxY).X + Matriz(auxX, auxY).IncX
  156.  
  157.            If (Matriz(auxX, auxY).Y + Matriz(auxX, auxY).IncY) > Me.Height - 405 Then
  158.                Matriz(auxX, auxY).IncY = Matriz(auxX, auxY).IncY * -1
  159.            ElseIf (Matriz(auxX, auxY).Y + Matriz(auxX, auxY).IncY) < 0 Then
  160.                Matriz(auxX, auxY).IncY = Matriz(auxX, auxY).IncY * -1
  161.            End If
  162.            Matriz(auxX, auxY).Y = Matriz(auxX, auxY).Y + Matriz(auxX, auxY).IncY
  163.        Next auxY
  164.    Next auxX
  165.  
  166.    Call DibujaPlanos
  167. End Sub
  168.  
  169.  
  170.  


En línea

- Miguel Núñez
Todos tenemos derechos a ser estupidos, pero algunos abusan de ese privilegio...
"I like ^TiFa^"
<[(x)]>

Desconectado Desconectado

Mensajes: 215



Ver Perfil
Re:
« Respuesta #11 en: 5 Noviembre 2008, 21:46 pm »

mm...

Spider-Net:
 
Como que lo pienso así, se me hace más difícil entenderlo como lo escriben ustedes. y no se me resulta mas fácil escribirlo (menos code=funcionamiento). Los boy haciendo estructurados si son muy complejos.

Tratare de seguir tu consejo, aunque me sea un poko difícil.

vivachapas:

trato...^^^^^^(modifiqueelcodearriba)

ssccaann43

Esta bueno el protector de pantallas.



« Última modificación: 5 Noviembre 2008, 22:43 pm por <[(x)]> » En línea

<[(x)]>
‭‭‭‭jackl007


Desconectado Desconectado

Mensajes: 1.403


[UserRPL]


Ver Perfil WWW
Re: Pirámide 3D sin usar apis
« Respuesta #12 en: 15 Noviembre 2008, 03:17 am »

ssccaann43:
no puedooo creeeer lo que veoooooo, empiezo a soñar con todas las formulas que voy aprendiendooo..
estooo es geniaaaaaaaaaalll!!!!

donde sacaste esoo? tu lo hiciste? cual es el razonamiento del punto de partida?
estoy ansioso por aprender estas cosas, porque toda la matematica se aplica aquii!
 ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D
En línea

WestOn

Desconectado Desconectado

Mensajes: 272


El testamento Maya...


Ver Perfil
Re: Pirámide 3D sin usar apis
« Respuesta #13 en: 15 Noviembre 2008, 14:24 pm »

Muy bueno el code :o :o!!

PD:ambos codes estan curiosos :P
« Última modificación: 15 Noviembre 2008, 15:56 pm por WestOn » En línea

En mi cabeza existe una barrera espacio-tiempo de 4cm³. ¿Alguien sabe como eliminarla?.
                                                                                                                                                                                                                            
‭‭‭‭jackl007


Desconectado Desconectado

Mensajes: 1.403


[UserRPL]


Ver Perfil WWW
Re: Pirámide 3D sin usar apis
« Respuesta #14 en: 20 Noviembre 2008, 03:04 am »


Esto da la apariencia de ser una piramide que esta girando.... pruebenlo... en realidad es un cuadrado que gira solo que los vertices los uni conforme se traza cada lado del "cuadrado", asi que da una apariencia de una piramide...

Código
  1. Const PI = 3.141592654
  2. Public Inter As Integer 'Intervalo del Angulo
  3.  
  4. Function AngRad(ByVal a As Double) As Double
  5. AngRad = (a * PI / 180)
  6. End Function
  7. Private Sub Form_Load()
  8. Inter = 0
  9. Me.AutoRedraw = True
  10. Me.BackColor = vbBlack
  11. Me.Height = 6180
  12. Me.Width = 6180
  13. Timer.Interval = 100
  14.  
  15. Scale (-50, 50)-(50, -50) 'Mi escala, en X y en Y normal
  16.  
  17. End Sub
  18.  
  19. Private Sub Timer_Timer()
  20. Cls 'Colocarlo y quitarlo para probar distintos efectos
  21.  
  22. Line (0, 40)-(0, 15), vbRed: Line (0, 15)-(0, -15), vbGreen: Line (0, -15)-(0, -40), vbRed
  23. Triangulo 25, 10, 0, -20, Inter
  24. Inter = Inter + 10 'Incremento del Angulo
  25.  
  26. End Sub
  27.  
  28. Sub Triangulo(ByVal R1 As Double, ByVal R2 As Double, ByVal eX As Double, ByVal eY As Double, ByVal Ang As Double)
  29.  
  30. Dim a, i As Integer
  31. a = Ang + 45
  32. i = a
  33.    For i = a To a + 360 Step 90
  34.        If i = a Then
  35.            CurrentX = R1 * Cos(AngRad(i)) + eX
  36.            CurrentY = R2 * Sin(AngRad(i)) + eY
  37.    Else
  38.        Line -(R1 * Cos(AngRad(i)) + eX, R2 * Sin(AngRad(i)) + eY), &HE0E0E0
  39.        Line (0, 20)-(R1 * Cos(AngRad(i)) + eX, R2 * Sin(AngRad(i)) + eY), &HE0E0E0
  40.    End If
  41. Next i
  42.  
  43. End Sub
En línea

SONIC88

Desconectado Desconectado

Mensajes: 100



Ver Perfil
Re: Pirámide 3D sin usar apis
« Respuesta #15 en: 24 Noviembre 2008, 20:41 pm »

 :o mu mu weno, mis felicitaciones, lamentable mi cerebro no deja entrar números, jaja, soy nulo en las maths.....  :P


 :laugh: SALUDOS  :laugh:
En línea

∞•••∞ MαЯcΘ™ ∞•••∞
<[(x)]>

Desconectado Desconectado

Mensajes: 215



Ver Perfil
Re: Pirámide 3D sin usar apis
« Respuesta #16 en: 25 Noviembre 2008, 18:14 pm »

ES la idea crear una imagen que tenga apariencia de algo tridimencional
porque nunca vas a lograr algo verdaderamente tridimencional.

i en caso que lo hagas explicamecomo...

chaus

En línea

<[(x)]>
Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Como se veria la pirámide en tu ciudad
Foro Libre
[u]nsigned 0 1,706 Último mensaje 11 Enero 2012, 05:32 am
por [u]nsigned
(Duda) Piramide completa en batch. Estructuración.
Scripting
zero-cool22 1 3,724 Último mensaje 30 Enero 2014, 21:26 pm
por Meine programmen
Piramide de asteriscos
Programación C/C++
yuna88 4 13,428 Último mensaje 12 Abril 2014, 14:56 pm
por yuna88
Una pirámide de codicia
Noticias
wolfbcn 0 1,522 Último mensaje 6 Julio 2014, 22:21 pm
por wolfbcn
Aprender a usar APIS
Programación C/C++
str0nghack 8 4,809 Último mensaje 8 Agosto 2017, 16:23 pm
por ivancea96
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines