ENCALHADO NO PROGRAMA

CRACKER 24/07/2013 16:29:55
#426483
Boa tarde.

Estou a fazer um programa que pensava eu que seria simple e fácil, mas estou encalhado.

  • tenho 4 textbox cada uma delas para as coordenadas X e Y
  • Pelo teorema de pitágoras obtenho o resultado, que tanto pode ser inteiro como decimal
  • 1 velocidade de por exeplo 9, que teria de ser convertido para o formato de horas( 00:09:00.000)

    O que eu pretendo é fazer a multiplicação da velocidade pelo valor obtido na fórmula do teorema de pitágoras.

    A fórmula usada é:

    Por exemplo, estas coordenadas:


    Tendo em conta que o resultado, segundo o excel é 00:12:43.675

    Preciso mesmo do resultado em formato de hora com os milisegundos :(


    Como posso fazer a multiplicação e converter o resultado para o formato de hora?

    Obrigado pela vossa ajuda desde já.
  • OCELOT 24/07/2013 17:00:43
    #426484
    Não entendi muito bem como você chegou nesse valor de 00:12:43.675, se foi pelo resultado da fórmula não sei o que fazer, mas se quer transformar um número em horas, por exemplo 1.5 = 01:30:00 então é só usar o TimeSpan.FromHours(valor)

    Por exemplo, TimeSpan.FromHours(1.41421356) é igual a 01:24:51.169
    CRACKER 24/07/2013 17:22:13
    #426487
    O valor de 00:12:43.675 é obtido multiplcando a raiz de 2 por 00:09:00
    (9 minutes/campo) * (1.41421356 fcampos) = 12.7279220 minutos
    Usando a lógica:
    Sabemos que há 60 minutos em uma hora, mas a duração é de apenas 12,7279220 minutos, um pouco menos de 60 minutos. Assim, o número de horas é 00. Temos agora uma duração de 00:?:?.??, Com 12,7279220 minutos que sobraram.

    Há toda a 12 minutos em 12,7279220 minutos, para colocar aqueles na ranhura minutos.
    Temos, agora, uma duração de 0:12:?.??, Com 0,7279220 minutos que sobraram.

    Precisamos saber os segundos seguinte (60 segundos em um minuto), para multiplicar os minutos restantes por 60 para obter o número de segundos.
    0.7279220 * 60 = 43,67532
    que tem 43 segundos inteiros para o slot segundos, dando-nos uma duração de 00:12:43.??

    Para encontrar os milissegundos multiplicar os restantes segundos (0,67532) em 1000 (1.000 milissegundos em um segundo, lembra?), E você tem o número de milissegundos.

    Bem, finalmente temos isso. A duração de 503 | 843-502 | 844 é 00:12:43.675.

    CRACKER 24/07/2013 18:01:55
    #426491
    Explicando-me melhor:

    Tenho os seguintes dados, a velocidade e a formula da distância e por isso tenho ovbiamente a distância entre os 2 pontos.

    Por exemplo para as coordenadas iniciais de 550|474 e as finais de 551|470 do mapa, a distância (pela formula) daria 4,123106

    A velocidade é um número integral ou decimal que é convertido em horas( formato HH:mm:ss.fff ), por exemplo 16-> 00:16:00.000

    Multplicando a velocidade pelo valor da distância obteria como resultado 01:05:58,181 ( 00:16:00,000 X 4.123106 = 01:05:58,181 )

    Foi testado no excel e dá o valor correcto. O problema é fazer isto no vb 2010 :(

    Como multiplicar uma string em formato de hora e uma decima ou não...
    CRACKER 05/08/2013 13:55:14
    #427041
    consegui resolver o problema.
    Tópico encerrado , respostas não são mais permitidas