Liên kết fiddle của bạn không hoạt động đối với tôi do tốc độ khoảng thời gian bị thiếu, nên sử dụng getElementById
quá (chỉ vì nó hoạt động trong Internet Explorer không làm cho trình duyệt chéo qua).
Ở đây, tôi chia hai nó, sử dụng một này thay vì:
http://jsfiddle.net/spechackers/hJhCz/
Tôi cũng đã dọn dẹp mã trong liên kết đầu tiên của bạn:
<pre id="p">
<script type="text/javascript">
var charMap=['p','.'];
var n=0;
function myInterval()
{
n+=7;//this is the amount of screen to "scroll" per interval
var outString="";
//this loop will execute exactly 4096 times. Once for each character we will be working with.
//Our display screen will consist of 32 lines or rows and 128 characters on each line
for(var i=64; i>0; i-=1/64)
{
//Note mod operations can result in numbers like 1.984375 if working with non-integer numbers like we currently are
var mod2=i%2;
if(mod2==0)
{
outString+="\n";
}else{
var tmp=(mod2*(64/i))-(64/i);//a number between 0.9846153846153847 and -4032
tmp=tmp+(n/64);//still working with floating points.
tmp=tmp^(64/i);//this is a bitwise XOR operation. The result will always be an integer
tmp=tmp&1;//this is a bitwise AND operation. Basically we just want to know if the first bit is a 1 or 0.
outString+=charMap[tmp];
}
}//for
document.getElementById("p").innerHTML=outString;
}
myInterval();
setInterval(myInterval,64);
</script>
</pre>
Kết quả của các mã trong hai liên kết bạn cung cấp rất khác nhau. Tuy nhiên, logic trong mã khá giống nhau. Cả hai đều sử dụng vòng lặp for để lặp qua tất cả các ký tự, một phép toán mod trên một số không phải số nguyên, và một hoạt động x2 bitwise
.
Làm thế nào để tất cả hoạt động, về cơ bản tất cả đều là I can tell you is to pay attention to the variables changing as the input and output change
.
Tất cả logic dường như là một số loại bitwise
cách khó hiểu để quyết định xem 2 ký tự hoặc ngắt dòng nào sẽ thêm vào trang.
Tôi không tự theo dõi chính mình từ góc nhìn của calculus or trigonometry
.
Do URL đề cập, cảnh là một checkboard raytraced với di chuyển quan điểm. Xem ví dụ http://www.cs.utah.edu/~shirley/classes/cs684_98/students/psutton/hw3/raytracer.html. – lhf