Veja se é isso que vc está procurando:
matriz original:
int M[10][10] = {.....};
Agora, tentando achar o valor entre 13% em X e 78% em Y
- Código: Selecionar todos
10 11 12 13 14 15 16 17 18 19 20
70 40 55
71 40 56
72 41 58
73 41 59
74 42 61
75 42 62
76 43 64
77 43 65
78 44 46 48 50 67
79 44 58
80 45 70
1 - Calcula-se a primeira coluna:
((45-40)/10 * posi) +40 // Posi é a posicao que vc está calculando
2 - Calcula-se a ultima coluna
((70-55)/10 * posi) +55 // Posi é a posicao que vc está calculando
3 - Calcular o ponto que vc realmente quer
((67-44)/10 * posi) +44
5 - Juntando tudo:
- Código: Selecionar todos
int posiX = 13; // VC recebe esse valor, só estou usando o que vc passou
int posiY = 78; // VC recebe esse valor, só estou usando o que vc passou
int MenorPosiColuna = posiY - (posiY % 10); // Neste exemplo será 70
int MaiorPosiColuna = MenorPosiColuna + 10; // Neste exemplo será 80
int MenorPosiLinha = posiX - (posiX % 10); // Neste exemplo será 10
int MaiorPosiLinha = MenorPosiLinha + 10; // Neste exemplo será 20
int MenorValorColuna1 = M[MenorPosiLinha][MenorPosiColuna]; // Neste exemplo será 40
int MaiorValorColuna1 = M[MenorPosiLinha][MaiorPosiColuna]; // Neste exemplo será 45
int MenorValorColuna2 = M[MaiorPosiLinha][MenorPosiColuna]; // Neste exemplo será 55
int MaiorValorColuna2 = M[MaiorPosiLinha][MaiorPosiColuna]; // Neste exemplo será 70
int PrimeiraColuna = ((MaiorvalorColuna1 - MenorValorColuna1)/10 * (posiY % 10)) + MenorValorColuna1; // Neste exemplo será 44
int UltimaColuna = ((MaiorvalorColuna2 - MenorvalorColuna2)/10 * (posiY % 10)) + MenorvalorColuna2; // Neste exemplo será 67
int value = ((UltimaColuna - PrimeiraColuna)/10 * (posiX % 10)) + PrimeiraColuna; // Neste exemplo será 50
6 - Comentários:
Primeira coluna é o calculo feito no item 1, mas agora dinamico
Ultima Coluna é o calculo feito no item 2, mas agora dinamico
value é o calculo feito no item 3, mas agora dinamico. Value deve ser o valor que vc está procurando.
Coluna1 é a coluna mais a esquerda(com valores entre 40 e 45) e coluna2 é a coluna mais a direita(com valores entre 55 e 70).
[]'s