Ir ao conteúdo
  • Cadastre-se

Cambalinho

Membros Plenos
  • Total de itens

    750
  • Registro em

  • Última visita

  • Qualificações

    0%

Reputação

70

Sobre Cambalinho

  • Data de Nascimento 28/05/1983 (37 anos)

Informações gerais

  • Cidade e Estado
    Portugal
  • Sexo
    Masculino
  1. visual não sei, o que sei é que quando abro o WMP, em modo máscara, só consigo controlar o volume... depois volto á biblioteca para fazer play na lista de reprodução anterior. além disso as oficiais dão o mesmo problema adicionado 19 minutos depois Nota: eu uso o skin para obter 1 barra pequena só com os controles
  2. eu não meti versão no Windows, porque noto este problema noutras versões. o Windows Media Player tem várias skins\mascaras. imagine fechar a janela enquanto está a ouvir música, sem mascara(Biblioteca), e depois volta abrir... o botão Play está activo.. mas se fechar, da mesma forma, mas com máscara, e voltar abrir, porque o botão play fica desactivado? (eu fiz o teste... se voltar á Biblioteca(quando uso a máscara), o botão esta activado) ou seja, este erro\bug só acontece na mascara\skin
  3. T1000_2015: como posso evitar a divisão por zero? eu posso fazer isto: If (WhatCoordenate = X) Then 'P.x = O.x + t*AB.x 't = (P.x - O.x) / AB.x if(AB.x=0) then T=1 else T = (ActualPosition - Origin.X) / AB.X end if eu meti igual a '1', mas neste caso, o que devo meter?
  4. esta função tem alguns erros de calculos, mas já a editei: Private Function GetLinePosition(Origin As Position3D, Destiny As Position3D, ActualPosition As Double, Optional WhatCoordenate As Coordenates = Z) As Position3D 'Getting the AB vector(B-A or Destiny-Origin): Dim AB As Position3D AB.X = Destiny.X - Origin.X AB.Y = Destiny.Y - Origin.Y AB.Z = Destiny.Z - Origin.Z Dim NewPosition As Position3D Dim T As Double 'depending on player movement(for get 1 coordenate and the T), we get the point coordenate: If (WhatCoordenate = X) Then 'P.x = O.x + t*AB.x 't = (P.x - O.x) / AB.x T = (ActualPosition - Origin.X) / AB.X NewPosition.X = ActualPosition NewPosition.Y = Origin.Y + AB.Y * T NewPosition.Z = Origin.Z + AB.Z * T ElseIf (WhatCoordenate = Y) Then 'P.y = O.y + t*AB.y 't = (P.y - O.y) / AB.y T = (ActualPosition - Origin.Y) / AB.Y NewPosition.Y = ActualPosition NewPosition.X = Origin.X + AB.X * T NewPosition.Z = Origin.Z + AB.Z * T ElseIf (WhatCoordenate = Z) Then 'P.z = O.z + t*AB.z 't = (P.z - O.z) / AB.z T = (ActualPosition - Origin.Z) / AB.Z NewPosition.Z = ActualPosition NewPosition.X = Origin.X + AB.X * T NewPosition.Y = Origin.Y + AB.Y * T End If GetLinePosition = NewPosition End Function muito obrigado
  5. finalmente consegui criar 1 função em VB6 para calcular o ponto da recta: Private Function GetLinePosition(Origin As Position3D, Destiny As Position3D, ActualPosition As Double, Optional WhatCoordenate As Coordenates = Z) As Position3D 'Getting the AB vector(B-A or Destiny-Origin): Dim AB As Position3D AB.X = Destiny.X - Origin.X AB.Y = Destiny.Y - Origin.Y AB.Z = Destiny.Z - Origin.Z Dim NewPosition As Position3D Dim T As Double 'depending on player movement(for get 1 coordenate and the T), we get the point coordenate: If (WhatCoordenate = X) Then 'X = Ax + T 'T = Ax-X T = Origin.X - ActualPosition NewPosition.X = ActualPosition NewPosition.Y = Origin.Y + AB.Y * T NewPosition.Z = Origin.Z + AB.Z * T ElseIf (WhatCoordenate = Y) Then 'Y = Ay + T 'T = Ay-Y T = Origin.Y - ActualPosition NewPosition.Y = ActualPosition NewPosition.X = Origin.X + AB.X * T NewPosition.Z = Origin.Z + AB.Z * T ElseIf (WhatCoordenate = Z) Then 'Z = Az + T 'T = Az-Z T = Origin.Z - ActualPosition NewPosition.Z = ActualPosition NewPosition.X = Origin.X + AB.X * T NewPosition.Y = Origin.Y + AB.Y * T End If GetLinePosition = NewPosition End Function o X, Y ou Z são obtidos dependendo do movimento do jogador(esquerda-direita ou atrás e frente). eu não tenho como testar esta função se está correcta... só obtenho os resultados quando a figura é desenhada. eu obtenho resultados inesperados... podes me tentar ver a função para ver se me enganei?
  6. eu tenho 1 função para detectar a colisão 3D: Private Function IsCollision3D(ObjectPosition1 As Position3D, ObjectSize1 As Size3D, ObjectPosition2 As Position3D, ObjectSize2 As Size3D) IsCollision3D = ((ObjectPosition1.X <= (ObjectPosition2.X + ObjectSize2.Width)) And ((ObjectPosition1.X + ObjectSize1.Width) >= ObjectPosition2.X) And (ObjectPosition1.Y <= (ObjectPosition2.Y + ObjectSize2.Height)) And ((ObjectPosition1.Y + ObjectSize1.Height) >= ObjectPosition2.Y) And (ObjectPosition1.Z <= (ObjectPosition2.Z + ObjectSize2.ZDepth)) And ((ObjectPosition1.Z + ObjectSize1.ZDepth) >= ObjectPosition2.Z)) End Function e parece funcionar bem. a partir desta função eu criei 1 função para detectar se um ponto esta dentro da camera: Private Function IsCollisionVertice3D(Vertice1 As Position3D, ObjectPosition2 As Position3D, ObjectSize2 As Size3D) IsCollisionVertice3D = ((Vertice1.X <= (ObjectPosition2.X + ObjectSize2.Width)) And ((Vertice1.X) >= ObjectPosition2.X) And (Vertice1.Y <= (ObjectPosition2.Y + ObjectSize2.Height)) And ((Vertice1.Y) >= ObjectPosition2.Y) And (Vertice1.Z <= (ObjectPosition2.Z + ObjectSize2.ZDepth)) And ((Vertice1.Z) >= ObjectPosition2.Z)) End Function As funções IsCollisionVertice3D() e IsCollision3D() estão correctas? Private Type Position3D X As Double Y As Double Z As Double End Type Private Type Size3D width As Double height As Double ZDepth As Double End Type
  7. T1000_2015 já vi que o 'T' é uma espécie de ID da Recta. me corrige 1 coisa: se o Z for zero ou igual entre o ponto AB é como fosse uma recta 2D?
  8. desculpa, mas eu só tenho o 12º ano... e talvez tenha razão.... além disso estou com dificuldade em acompanhar o manual... a 2D percebo bem... mas a 3D ainda me deixa confuso: o que é o 't'? adicionado 31 minutos depois muito obrigado pelos manuais.. e com a sua ajuda consegui fazer a pesquisa certa e encontrei 1 video que me ajuda e muito: muito obrigado por tudo
  9. muito obrigado. mas me falta 1 informação: "Definiremos as coordenadas dos pontos pertencentes à reta por meio das incógnitas x e y (se a reta pertencer a um espaço de duas dimensões), que se relacionam entre si pela equação. Caso a equação pertença a um espaço de três dimensões, usaremos as incógnitas x, y e z." qual é a forma de obter a equação em 3D?
  10. desculpa, mas não sei obter essa equação a partir da origem e destino
  11. imagine que a linha começa em (0,0) e acaba em (100,50). se estiver na posição, do X, 50... como posso calcular o Y?
  12. isso poderia ser 1 codigo, mas eu demonstro como pseucodigo para outros entenderem... e não uso 1 libraria... eu consigo rodar agora(vou mostrar codigo VB6): Private Function Rotate(Position As Position3D, Rotation As Angle3D, PositionRotated As Position3D) As Position3D Dim ConvertedPosition As Position3D Dim RotationInRads As Angle3D RotationInRads = ConvertDegreesToRadians(Rotation) ConvertedPosition = Position If (Rotation.X <> 0) Then ConvertedPosition.Y = (Position.Y - PositionRotated.Y) * Cos(RotationInRads.X) - (Position.Z - PositionRotated.Z) * Sin(RotationInRads.X) ConvertedPosition.Z = (Position.Y - PositionRotated.Y) * Sin(RotationInRads.X) + (Position.Z - PositionRotated.Z) * Cos(RotationInRads.X) End If If (Rotation.Y <> 0) Then ConvertedPosition.X = (Position.Z - PositionRotated.Z) * Sin(RotationInRads.Y) + (Position.Z - PositionRotated.Z) * Cos(RotationInRads.Y) ConvertedPosition.Z = (Position.Z - PositionRotated.Z) * Cos(RotationInRads.Y) - (Position.Z - PositionRotated.Z) * Sin(RotationInRads.Y) End If If (Rotation.Z <> 0) Then ConvertedPosition.X = (Position.X - PositionRotated.X) * Cos(RotationInRads.Z) - (Position.Y - PositionRotated.Y) * Sin(RotationInRads.Z) ConvertedPosition.Y = (Position.X - PositionRotated.X) * Sin(RotationInRads.Z) + (Position.Y - PositionRotated.Y) * Cos(RotationInRads.Z) End If ConvertedPosition.X = ConvertedPosition.X + Position.X ConvertedPosition.Y = ConvertedPosition.Y + Position.Y ConvertedPosition.Z = ConvertedPosition.Z + Position.Z Rotate = ConvertedPosition End Function '........... Private Sub FillPosition3D(Position As Position3D, X As Long, Y As Long, Z As Long) Position.X = X Position.Y = Y Position.Z = Z End Sub '............ FillPosition3D RotatedPosition, Position.X + Size.Width / 2, Position.Y + Size.Height / 2, Position.Z + Size.ZDepth / 2 mas agora noto alguns problemas: 1 - a rotação Z funciona correctamente, mas altera a escala do rectangulo; 2 - o X, Y fazem rotação sem o centro
  13. imagine que temos 1 rectangulo com: x=10 Y= 20 Z = 0 comprimento = 10 altura = 10 para rodar o rectangulo temos de rodar os 4 vertices: X = (Position.Z) * Sin(RotationInRads.Y) + (Position.X ) * Cos(RotationInRads.Y) Y = (Position.Y) * Cos(RotationInRads.X) - (Position.Z ) * Sin(RotationInRads.X) Z = (Position.Y) * Sin(RotationInRads.X) + (Position.Z ) * Cos(RotationInRads.X) pelo que aprendi eu tenho de adicionar o centro do rectangulo ás posições: X = (Position.Z+ ZDepth/2) * Sin(RotationInRads.Y) + (Position.X+Width/2 ) * Cos(RotationInRads.Y) Y = (Position.Y+Height/2) * Cos(RotationInRads.X) - (Position.Z+ ZDepth/2 ) * Sin(RotationInRads.X) Z = (Position.Y+Height/2) * Sin(RotationInRads.X) + (Position.Z+Height/2 ) * Cos(RotationInRads.X) mas o problema é que a rotação ainda é feita em torno de circulo e não na mesma posição o que estou a fazer mal nos calculos?
  14. muito obrigado. eu já consegui instalar o Visual Studio 6.0... mas além desse link, eu tenho mais 1 dica: - a 1ª instalação temos de fazer com o minimo possivel de recursos VB6 e mais pouca coisa... depois disso voltamos ao instalador e selecionamos mais do que precisamos e ficamos com tudo ou quase tudo instalado e assim reiniciamos o pc para instalar o SP6. muito obrigado e boa Páscoa
  15. já tentei várias vezes instalar o Visual Studio 6.0. até desmarquei algumas funções, mas no fim da instalação, por e simplesmente, o Setup freeze e no titulo da janela fica "Não responde". tentei usar o instalador do vbcorner, mas ele pensa que o Visual Studio 6.0 está instalado. e quando copia os ficheiros diz 'aborted', mas eu não cancelei!!!! usei o instalador feito no Inno Setup e funciona, mas só tem o Visual Basic e eu também queria o Visual C++. ontem andei durante horas e sem sucesso para instalar o Visual Studio 6.0 no Windows 10... alguém me pode ajudar mais 1 pouco?

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Aprenda_a_Ler_Resistores_e_Capacitores-capa-3d-newsletter.jpg

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!