JavaScript - Overlap Radius... Help Me..
Similar Tutorialshow can i create javascript so that the following methods produce the output listed next it. circle = new Circle(); console.log(circle.get_area()); // 3.141592653589793 circle.set_radius(10); console.log(circle.get_area()); // 314.1592653589793 console.log(circle); // the radius of my circle is 10 and it's area is 314.1592653589793 I use the tutorial from http://www.javascriptkit.com/script/...geviewer.shtml and create an overlap image viewer. But whenever I use Firefox or IE to open my webpage, the overlap image viewer is not shown on the website. In other words, only the image link hint is shown when my mouse is over the image. I know when i open the page with java scripts, IE or Firefox will usually has a warning and ask the user if you want to run scripts or ActiveX. But the page with overlap image viewer I created will not invoke any pop-up blocker warnings and at least let a user have an option to see my overlap image. what should i add to make the overlap image viewer show in a proper way after opening IE or Firefox? When it occurred to me that I needed to calculate this, I knew it was over my head. (although I did come up with what I thought to be a pretty clever solution involving a very complex series of arrays...) So I decided to google it. The trouble is, the solution was a little over my head too... Sooo I hacked away at it for about an hour, and finally it worked, but on closer inspection I had made a typo from the original algorithm. So I thought I would pose the question to you all... Is the original algorithm correct, or flawed? is my interpretation correct/flawed, or the same? I'm not really sure what I did here, but after many tests, I think I got the correct solution. original post on http://stackoverflow.com/questions/3...ranges-overlap Quote: Let CondA Mean DateRange A Completely After DateRange B (True if StartA > EndB) Let CondB Mean DateRange A Completely Before DateRange B (True if EndA < StartB) Then Overlap exists if Neither A Nor B is true ( If one range is neither completely after the other, nor completely before the other, then they must overlap) Now deMorgan's law, I think it is, says that Not (A Or B) <=> Not A And Not B Which means (StartA <= EndB) And (EndA >= StartB) NOTE: This includes conditions where the edges overlap exactly. If you wish to exclude that, change the >= operators to >, and <= to < And finally the test scenario that I finally got to work: Code: <input onclick="this.value=''" onkeyup="TEST()" id=inhour1 value=1> <input onclick="this.value=''" onkeyup="TEST()" id=inminute1 value=1> <br /> <input onclick="this.value=''" onkeyup="TEST()" id=outhour1 value=2> <input onclick="this.value=''" onkeyup="TEST()" id=outminute1 value=1> <br /> <br /> <input onclick="this.value=''" onkeyup="TEST()" id=inhour2 value=3> <input onclick="this.value=''" onkeyup="TEST()" id=inminute2 value=1> <br /> <input onclick="this.value=''" onkeyup="TEST()" id=outhour2 value=4> <input onclick="this.value=''" onkeyup="TEST()" id=outminute2 value=1> <script> function ID(e){return document.getElementById(e)} function TEST(){ intime1=(parseInt(ID('inhour1').value,10)*60*60)+(parseInt(ID('inminute1').value,10)*60) intime2=(parseInt(ID('inhour2').value,10)*60*60)+(parseInt(ID('inminute2').value,10)*60) outtime1=(parseInt(ID('outhour1').value,10)*60*60)+(parseInt(ID('outminute1').value,10)*60) outtime2=(parseInt(ID('outhour2').value,10)*60*60)+(parseInt(ID('outminute2').value,10)*60) comp= (intime1 <= outtime2)&&(outtime1 <= intime2) ID('compare').innerHTML='' ID('compare').innerHTML+=intime1+'<br />' ID('compare').innerHTML+=outtime1+'<br />' ID('compare').innerHTML+=intime2+'<br />' ID('compare').innerHTML+=outtime2+'<br />' ID('compare').innerHTML+=comp+'<br />' } </script> <button onclick="TEST()">compare</button> <div id="compare"></div> Any feedback would help a lot! I fear using an algorithm that I don't fully understand in production code... |