Как Вы управляете выделенным текстом через расширение Firefox

Простой способ оценить точность sin() И cos() для данного аргумента x будет выглядеть так:

eps_trig = np.abs(1 - (np.sin(x)**2 + np.cos(x)**2)) / 2

Возможно, вы захотите сбросить последнюю 2, просто чтобы быть на «безопасная сторона» (ну, есть значения x, для которых это приближение не выполняется очень хорошо, в частности для x, близкого к -90 deg). Я бы предложил протестировать около x=pi/4

Объяснение:

Основная идея этого подхода заключается в следующем ... Допустим, наши sin(x) и cos(x) отклоняются от точных значений одно «значение ошибки» eps. То есть exact_sin(x) = sin(x) + eps (то же самое для cos(x)). Кроме того, назовем delta измеренным отклонением от пифагорейской тригонометрической идентичности :

delta = 1 - sin(x)**2 - cos(x)**2

Для точных функций delta должно быть равно нулю:

1 - exact_sin(x)**2 - exact_cos(x)**2 == 0

или, переходя к неточным функциям:

1 - (sin(x) + eps)**2 - (cos(x) + eps)**2 == 0 =>
1 - sin(x)**2 - cos(x)**2 = delta = 2*eps*(sin(x) + cos(x)) + 2*eps**2

Пренебрежение последним слагаемым 2*eps**2 (допустим небольшие ошибки):

2*eps*(sin(x)+cos(x)) = 1 - sin(x)**2 - cos(x)**2

Если мы выберем x так, чтобы sin(x)+cos(x) ] колеблется около 1 (или где-то в диапазоне 0.5-2), мы можем приблизительно оценить, что eps = |1 - sin(x)**2 - cos(x)**2|/2.

5
задан Mark Wilbur 6 February 2009 в 08:30
поделиться

2 ответа

selectedText = content.getSelection().toString();
4
ответ дан 15 December 2019 в 01:12
поделиться

необходимо получить объект диапазона от пользовательского выбора:

var userSelection;
if (window.getSelection)
    userSelection = window.getSelection();
else if (document.selection)    // should come last; Opera!
    userSelection = document.selection.createRange();

var rangeObject = getRangeObject(userSelection);

...

function getRangeObject(selectionObject) {
    if (selectionObject.getRangeAt)
        return selectionObject.getRangeAt(0);
    else { // Safari!
        var range = document.createRange();
        range.setStart(selectionObject.anchorNode, selectionObject.anchorOffset);
        range.setEnd(selectionObject.focusNode, selectionObject.focusOffset);
        return range;
    }
}

...

Объект Диапазона имеет, запускают и заканчивают контейнерные узлы, и т.д.

больше информации может быть найдено на Quirksmode здесь и на w3.org здесь

0
ответ дан 15 December 2019 в 01:12
поделиться
Другие вопросы по тегам:

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