乌拉姆螺旋(Ulam Spiral)的实验图片及一段HTML代码

乌拉姆螺旋(Ulam Spiral)的实验图片及一段HTML代码前一段时间因为看了一些近代 也了解了一些数论的皮毛 其中有个娱乐性的乌拉姆螺旋看起来颇有观赏性 于是自己做了一些实验 这里记录一下 并且给出了简单实现的源代码

大家好,欢迎来到IT知识分享网。

因为前一段时间看了一些近代,也了解了一些数论的皮毛,发现其中有个娱乐性的乌拉姆螺旋看起来颇有观赏性,于是自己做了一些实验,这里记录一下,并且给出了简单实现的源代码。

什么是乌拉姆螺旋(Ulam Spiral)

简单的Ulam螺旋

这里写图片描述

Ulam螺旋的染色图

这里写图片描述

比较大的螺旋

这里写图片描述

这里写图片描述

扭曲的螺旋

这里写图片描述

生成基本Ulam Spiral的代码(HTML+JS)

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Ulam Spiral</title> <meta name="Keywords" content=""> <meta name="Description" content=""> <style type="text/css"> body, h1{ 
    margin:0;} canvas{ 
    margin: 20px; } </style> </head> <body onload="draw()"> <canvas id="canvas" width=1000 height=1000 style="border: 0px;"></canvas> <script> function isPrime(n) { 
     if (isNaN(n) || !isFinite(n) || n%1 || n<2) return false; if (n%2==0) return (n==2); if (n%3==0) return (n==3); var m=Math.sqrt(n); for (var i=5;i<=m;i+=6) { if (n%i==0) return false; if (n%(i+2)==0) return false; } return true; } var prime_colors = ["#", "#007FFF", "#cccccc", "green", "#ff3300"]; function dot(context, x, y, r, num) { 
     context.beginPath(); context.arc(x, y, r, 0, Math.PI * 2, true); if (isPrime(num)) { context.fillStyle = prime_colors[(num-1)%10/2]; } else { context.fillStyle = "#f3f3f3"; } context.fill(); if (1) { if (isPrime(num)) { context.fillStyle = "white"; } else { context.fillStyle = "#aaaaaa"; } context.textAlign='center'; context.textBaseline='middle'; context.font = (r*0.9)+"px Courier New"; context.fillText(num, x, y); } } function draw() { 
     var a = 40; var r = a/2; var border_length = 22; var cx = r+1000/2; var cy = r+1000/2; var canvas=document.getElementById('canvas'); var context=canvas.getContext('2d'); var num = 1; var direction = 0; var stride = 1; for (k=0; k<border_length; k++) { for (var i=0; i<stride; i++) { dot(context, cx, cy, r, num); if (direction == 0) cx += a; if (direction == 1) cx -= a; num+=1; } for (var i=0; i<stride; i++) { dot(context, cx, cy, r, num); if (direction == 0) cy -= a; if (direction == 1) cy += a; num+=1; } direction = ++direction%2; stride++; } } </script> </body> </html> 
  • https://en.wikipedia.org/wiki/Ulam_spiral
  • http://baike.baidu.com/link?url=3-xkN-IcKPcc0qLrmMBpF9chgvk7el5E8VgUP427Dfvfa5TjZtOTX_R_6l6HxodRX0l_Vif5ontvjSQCbM9EKa
  • Gardner, M. (March 1964), “Mathematical Games: The Remarkable Lore of the Prime Number”, Scientific American 210: 120–128, doi:10.1038/scientificamerican0364-120

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/142674.html

(0)
上一篇 2025-05-08 20:00
下一篇 2025-05-08 20:10

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信