Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.javascript > #37960
| Newsgroups | comp.lang.javascript |
|---|---|
| Date | 2019-12-17 00:22 -0800 |
| Message-ID | <f82f9fc3-ef63-4ca4-b26e-e27adc9c684a@googlegroups.com> (permalink) |
| Subject | Plotting logic |
| From | Jonas Thörnvall <jonas.thornvall@gmail.com> |
I write out notes on the cavas within a "freely chosen" timespann, but there is something wrong with my logic plotting them out. As long it is only the rightside expanding shrinking the notes scale accordingly.
But if i move the startpoint from 0 they suddenly start to drift left, so it is some initial value set wrong that they drift to the rightside could even be a sign error?
The bar values for selected regions work just fine so there is something like a sign or wrong value read in below. Of course i just plot values that is within the timespann on screen, but when startpoint change they start drift changing endpoint to problem they scale fine.
https://midisequenser.000webhostapp.com/
function notePlot(){
console.log("NOTEPLOT TRACK="+rectrack+" midiMess length="+track[rectrack].midiMess.length);
var plotRightSide=0;var plotLeftSide=0;var x=0;var z=0;var i=0;
nbrOfEV = track[rectrack].midiMess.length;
while (x<nbrOfEV){
if (track[rectrack].midiMess[x].time>TimeSPos && track[rectrack].midiMess[x].time<TimeEPos && track[rectrack].midiMess[x].data0==NOTE_ON){
distanceTotal=Mwidth-50;
TimeTotal=TimeEPos-TimeSPos;
TimeOnLeft=TimeSPos-(TimeSPos-track[rectrack].midiMess[x].time);
TimePerc=TimeOnLeft/TimeTotal;
plotLeftSide=TimePerc*distanceTotal;
z=x+1;
while(z<nbrOfEV){
if(track[rectrack].midiMess[z].data1==track[rectrack].midiMess[x].data1){
TimeOnRight=TimeEPos-(TimeEPos-track[rectrack].midiMess[z].time);
TimePerc=TimeOnRight/TimeTotal;
plotRightSide=TimePerc*distanceTotal;
recLength=plotRightSide-plotLeftSide;
keyNr=track[rectrack].midiMess[x].data1;
if (rectrack==0){keyNr=70;}
else {keyNr=parseInt(keyNr);}
ctm.fillStyle = pcolor[keyNr];
ctm.fillRect(50+plotLeftSide,(PistartX+keyHeight*88)-(keyHeight*(track[rectrack].midiMess[x].data1-8)),recLength,keyHeight-1);
//Saving the values of note graphic to array to compare with mouse
graphNotePosX[i]=50+plotLeftSide;
graphNotePosY[i]=(PistartX+keyHeight*88)-(keyHeight*(track[rectrack].midiMess[x].data1-8));
graphNoteLength[i]=recLength;
graphNoteHeight[i]=keyHeight-1;
graphNoteEvent[i]=x;
i++;
break;
}
z++;
}
}
x++;
}
nbrOfEV=0;
}
Back to comp.lang.javascript | Previous | Next — Next in thread | Find similar | Unroll thread
Plotting logic Jonas Thörnvall <jonas.thornvall@gmail.com> - 2019-12-17 00:22 -0800
Re: Plotting logic Jonas Thörnvall <jonas.thornvall@gmail.com> - 2019-12-17 00:23 -0800
Re: Plotting logic Jonas Thörnvall <jonas.thornvall@gmail.com> - 2019-12-17 00:41 -0800
Re: Plotting logic Julio Di Egidio <julio@diegidio.name> - 2019-12-17 00:54 -0800
Re: Plotting logic Jonas Thörnvall <jonas.thornvall@gmail.com> - 2019-12-17 01:45 -0800
Re: Plotting logic Julio Di Egidio <julio@diegidio.name> - 2019-12-17 01:55 -0800
Re: Plotting logic Jonas Thörnvall <jonas.thornvall@gmail.com> - 2019-12-17 02:04 -0800
Re: Plotting logic Jonas Thörnvall <jonas.thornvall@gmail.com> - 2019-12-17 02:08 -0800
Re: Plotting logic Jonas Thörnvall <jonas.thornvall@gmail.com> - 2019-12-17 02:24 -0800
Re: Plotting logic Jonas Thörnvall <jonas.thornvall@gmail.com> - 2019-12-17 02:30 -0800
Re: Plotting logic Jonas Thörnvall <jonas.thornvall@gmail.com> - 2019-12-17 02:43 -0800
csiph-web