Триангуляция и Прямое линейное преобразование

Это что-то вроде хака и должно использоваться только в случаях, подобных разоблаченному в OP , но
Во всех реализациях используются целые числа как timerid ] , которые просто увеличиваются при каждом вызове.

Так что вы можете сделать, это очистить все тайм-ауты, которые были созданы на странице.
Для этого вам нужно сначала узнать, какой у нас таймрид, а затем вызывать cleatTimeout или clearInterval (они делают то же самое) в цикле, пока не достигнете последнего вызова:

function stopAllTimers() {
  const timerid = setTimeout(_=>{}); // first grab the current id
  let i=0;
  while(i < timerid) {
    clearTimeout(i); // clear all
    i++;
  }
};
btn.onclick = stopAllTimers;

// some stoopid orphan intervals
setInterval(()=>console.log('5000'), 5000);
setInterval(()=>console.log('1000'), 1000);
setInterval(()=>console.log('3000'), 3000);
const recursive = () => {
  console.log('recursive timeout');
  setTimeout(recursive, 5000);
};
recursive();

10
задан yxk 19 March 2010 в 04:31
поделиться

2 ответа

Как упоминается в книге (раздел 12.2), p i T являются строк из P . Следовательно, вам не нужно транспонировать P1 (k,:) (т.е. правильная формулировка: A = [xhat1 (1) * P1 (3, :) - P1 (1 ,: ); ... ).

Надеюсь, это была опечатка.

Кроме того, рекомендуется нормализовать каждую строку A с ее нормой L2, то есть для всех i

A (i, :) = A (i,:) / norm (A (i,:));

И если вы хотите построить триангулированные трехмерные точки, вы должны нормализовать Xhat перед построением (в противном случае это бессмысленно), то есть

Xhat = Xhat / Xhat (4);

12
ответ дан 4 December 2019 в 00:24
поделиться
A(1,:) = A(1,:)/norm(A(1,:));
A(2,:) = A(2,:)/norm(A(2,:));
A(3,:) = A(3,:)/norm(A(3,:));
A(4,:) = A(4,:)/norm(A(4,:));

Мог быть упрощен как A = normr(A).

0
ответ дан 4 December 2019 в 00:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: