Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.09.04;
Скачать: CL | DM;

Вниз

Простейшая линейная интерполяция...   Найти похожие ветки 

 
Кефир87   (2005-05-11 17:46) [0]

Я уже третий день бъюсь... Вроде все просто... Я даже формулу знаю... Но вот никак ничего подставить в нее не могу...
Задача:
Дан полигон у которого все четыре точки заданны координатами x,y,z. Дана некая точка... скажем M заданная координатами x,z... Так вот как для нее интерполировать y...
Это у меня карта высот 8)


 
Кефир87   (2005-05-11 18:08) [1]

Я хотел сделать так... По формуле

      x-x1          x-x0
f(x) = ----- * y0 + ------ * y1
      x0-x1        x1-x0


Для одной стороны... потом для другой... А потом интерполировать между результатами предидущих действий... Не получилось... Надоело думать!


 
Asteroid ©   (2005-05-11 18:10) [2]

Пусть точки заданы как
0...1
.   .
2...3


function Lerp( a, b, t: Single ): Single;
begin
 Result := ( 1 - t ) * a + t * b;
end;

Сначала интерполируем y по координате x:
tx := ( x - x0 ) / ( x1 - x0 );  // x1 - x0 - это шаг сетки по x
ya := Lerp( y0, y1, tx );
yb := Lerp( y2, y3, tx );

А теперь полученные ya и yb по z:
tz := ( z - z0 ) / ( z2 - z0 ); // z2 - z0 - шаг сетки по z
y := Lerp( ya, yb, tz );

Вот и все...


 
Asteroid ©   (2005-05-11 18:16) [3]

Попробую поточнее нарисовать (если не собьется):
0...a..1   +-->
.   .  .   |   x
.   .  .   v
.   .  .    z
....y...
.   .  .
2...b..3


 
Кефир87   (2005-05-12 17:39) [4]


> Asteroid

Спасибо! Я все понял. Все получилось 8)



Страницы: 1 вся ветка

Текущий архив: 2005.09.04;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.052 c
14-1123759018
by
2005-08-11 15:16
2005.09.04
В каком из украинских банком сейчас выгоднее держать депозит?


14-1123364372
SoftX
2005-08-07 01:39
2005.09.04
Сожрал семь пачек Ноотропила. Когда стану умным?


2-1123246871
_zx
2005-08-05 17:01
2005.09.04
кто-нить пользовался компонентой Asunc32?


6-1116595933
Павел1
2005-05-20 17:32
2005.09.04
Как получить строку c подключившимся IP?


8-1113403006
Unknown user
2005-04-13 18:36
2005.09.04
Разрешение картинки