отключите текстовое перетаскивание

Вот то, как Вы реализуете фильтр низких частот с помощью свертки:

double[] signal = (some 1d signal);
double[] filter = [0.25 0.25 0.25 0.25]; // box-car filter
double[] result = new double[signal.Length + filter.Length + 1];

// Set result to zero:
for (int i=0; i < result.Length; i++) result[i] = 0;

// Do convolution:
for (int i=0; i < signal.Length; i++) 
  for (int j=0; j < filter.Length; j++)
    result[i+j] = result[i+j] + signal[i] * filter[j];

Примечание, что пример чрезвычайно упрощен. Это не делает проверок принадлежности к диапазону и не обрабатывает края правильно. Фильтр, используемый (серия длинных импульсов), является особенно плохим фильтром низких частот, потому что это вызовет много артефактов (вызов). Читайте на дизайне фильтра.

можно также реализовать фильтры в частотной области. Вот то, как Вы реализуете фильтр высоких частот с помощью FFT:

double[] signal = (some 1d signal);
// Do FFT:
double[] real;
double[] imag;
[real, imag] = fft(signal)

// Set the first quarter of the real part to zero to attenuate the low frequencies
for (int i=0; i < real.Length / 4; i++) 
  real[i] = 0;

// Do inverse FFT:
double[] highfrequencysignal = inversefft(real, imag);

Снова, это упрощено, но Вы получаете идею. Код не выглядит столь же сложным как математика.

16
задан maniek 19 October 2009 в 15:45
поделиться

3 ответа

Этот код будет работать во всех версиях Mozilla и IE.

function preventDrag(event)
{
 if(event.type=='dragenter' || event.type=='dragover' || //if drag over event -- allows for drop event to be captured, in case default for this is to not allow drag over target
    event.type=='drop') //prevent text dragging -- IE and new Mozilla (like Firefox 3.5+)
 {
  if(event.stopPropagation) //(Mozilla)
  {
   event.preventDefault();
   event.stopPropagation(); //prevent drag operation from bubbling up and causing text to be modified on old Mozilla (before Firefox 3.5, which doesn't have drop event -- this avoids having to capture old dragdrop event)
  }
  return false; //(IE)
 }
}

//attach event listeners after page has loaded
window.onload=function()
{
 var myTextInput = document.getElementById('textInput'); //target any DOM element here

 if(myTextInput.addEventListener) //(Mozilla)
 {
  myTextInput.addEventListener('dragenter', handleEvents, true); //precursor for drop event
  myTextInput.addEventListener('dragover', handleEvents, true); //precursor for drop event
  myTextInput.addEventListener('drop', preventDrag, true);
 }
 else if (myTextInput.attachEvent) //(IE)
 {
  myTextInput.attachEvent('ondragenter', preventDrag);
  myTextInput.attachEvent('ondragover', preventDrag);
  myTextInput.attachEvent('ondrop', preventDrag);
 }
}
5
ответ дан 30 November 2019 в 16:36
поделиться

Для архивных целей:

<body ondragstart="return false" draggable="false"
        ondragenter="event.dataTransfer.dropEffect='none'; event.stopPropagation(); event.preventDefault();"  
        ondragover="event.dataTransfer.dropEffect='none';event.stopPropagation(); event.preventDefault();"  
        ondrop="event.dataTransfer.dropEffect='none';event.stopPropagation(); event.preventDefault();"
>

делает то, что я хотел. Вы также можете добавить обработчики ondrag * для элементов формы, например

ссылочный URL: https://developer.mozilla.org/En/DragDrop/Drag_Operations

21
ответ дан 30 November 2019 в 16:36
поделиться

добавьте следующее в теги полей:

#ondragstart is for IE, onmousedown is for firefox
ondragstart="return false" onmousedown="return false" 
3
ответ дан 30 November 2019 в 16:36
поделиться
Другие вопросы по тегам:

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