ACHAR O NUMERO MAIS PROXIMO

SERGIOPASCOAL 19/08/2010 16:46:37
#350728
Pessoal seguinte:
tenho uma grid com 2 colunas onde armazeno as coordenadas x e y (em cada coluna)
Agora como faço um fórmula para achar as coordenadas mais proxima
exemplo
x |y
10|30
21|40
40|28

estou na coordenada 19, 42, então devo ir na linha 21|40, pois é a mais próxima, mas como achar ela?
Obrigado
EDERMIR 19/08/2010 18:54:20
#350739
Seu exemplo está confuso com a sua pergunta. Seja mais claro.
MARCELO.TREZE 19/08/2010 20:08:18
#350744
Qual o grid? MSFlexgrid?
AJSO 20/08/2010 01:58:39
#350766
Cara deixa ver se entendi

x | y
10 | 30
21 | 40
40 | 28
porque não soma x+Y cria uma terceira coluna x^2+y^2

x | y | (x^2+y^2)
10 | 30 | 1000
21 | 40 | 2041 <=====
40 | 28 | 2384

quando for comparar uma coordenada o que se aproximar do valor tipo a sua que vc passou x^2=19, y^2=42 seria 19^2+42^2 = 2125 verá qua a mais proxima que vc passou

é a mais proxima do seu ponto x, y

Veja se esta formula te ajuda




AJSO 21/08/2010 21:04:50
#350897


Caro LVFIOROT não sei como chegou a esta conclusão de calculo errado baseado em qual coordenada calculada

suponhamos a seguinte tabela
x y x^2+y^2
10 !20 500
10 !99 9901
11 !20 521 <===========
no seu estilo de calculo o ponto mais proximo seria o 10!99 porem na verdade o ponto mais proximo e o 11!20... logo esse seu calculo não ta muito certo nao....
Não sei que conta vc fez mas posso garantir que fez errado

Baseado em X^2 + Y^2 o resultado é a coordenada mais proxima
se analisarmos as coordenadas que o colega SERGIOPASCOAL passou sendo x = 19 e y = 42 o resultado é x^2+y^2 = 2125

o resultado tá mais proximo de 9901 ou de 521
então o a coordenada mais proxima é 11 !20 521

Não sei que coordenada (x, y) vc usou para compara mas usa esta formula que passei ( x^2+y^2) que o resultado te surpreenderá.

x^2 = x ao quadrado
y^2 = y ao quadrado


vou colocar isso em uma reta infinita onde esta reta define o resultado do calculo que apresentei.

521 2125 9901
--------------------|----------------------------|--------------------------------------------------------------|

E AI VC ACHA QUE 2125 TÁ MAIS PROXIMO DE 521 OU DE 9901?

USE COMO DIFERENÇA cm OU Metros OU AINDA UMA ESCALA COMO UNIDADE DE MEDIDA QUE VC DEFINA PARA FAZER ESTA ANALOGIA.



GERARDA 21/08/2010 22:46:29
#350908
cara experimenta isso


Private Sub Form_Load()
List1.AddItem [Ô]1925[Ô]
List1.AddItem [Ô]1030[Ô]
List1.AddItem [Ô]1942[Ô]
List1.AddItem [Ô]2140[Ô]
List1.AddItem [Ô]4028[Ô]
End Sub

Private Sub List1_Click()
Dim ver1 As Double, ver2 As Double, ver3 As Double

If List1.ListIndex = 0 Then
ver1 = 0
Else
ver1 = List1.List(List1.ListIndex - 1)
End If

ver2 = List1.List(List1.ListIndex)

If List1.ListIndex = List1.ListCount - 1 Then
ver3 = ver2 * 2
Else
ver3 = List1.List(List1.ListIndex + 1)
End If

If (ver2 - ver1) < (ver3 - ver2) Then
Label1 = ver1
Else
Label1 = ver3
End If


End Sub


tem que deixar o sorted da lista como true

AJSO 22/08/2010 15:55:41
#350935

è isso ai Caro Colega LVFIOROT matemática é só aplicar certo ou errado é só um ponto de vista.

Valeu se prescisar estamos ai acredito que AJUDAMOS o o colega a resolver seu problema. Se não. pelo memos tentamos

E forum de programação é isso [Ô]tentar sempre para ajudar a todos[Ô] Compartilhar atrai amigos.
Página 1 de 2 [11 registro(s)]
Tópico encerrado , respostas não são mais permitidas