시에르핀스키 삼각형
8587 단어 javascriptgraphics
나는 며칠 전 저녁에 TikTok을 스크롤하고 있었는데 (그렇게 하기에는 너무 나이가 많은 것 같지만 가끔 금이 있습니다!) following video을 발견했습니다.
@flipperzer0 ♬ Levels - Live Session - Sarah Coponat
어쨌든, 시도해보고 싶은 마음에 p5 테스트를 해봤는데 잘 됩니다!
const points = [
[-75, 130],
[-150, 0],
[-75, -130],
[75, -130],
[150, 0],
[75, 130],
[75, 130],
]
const rand = (int) => Math.round(Math.random() * int)
const width = 600
const height = 600
function setup() {
createCanvas(width, height)
noStroke()
}
function draw() {
background(0)
fill(255, 255, 255)
text(points.length, 50, 50)
points.forEach(point => {
circle(point[0] + (width /2), point[1] + (height /2), 1)
})
populateArray(10000, points)
}
const populateArray = (count, arr) => {
for(let i = 0; i < count; i++){
const target = points[rand(6)]
const source = points[points.length - 1]
const point = [
Math.round((source[0] + (2/3) * (target[0] - source[0]))),
Math.round((source[1] + (2/3) * (target[1] - source[1])))
]
if(points.indexOf(point) === -1){
points.push(point)
}else{
console.info('Duplicate removed')
}
}
}
몇 가지 알 수 없는 이유로, 그리고 아주 가끔 패턴이 잘못됩니다. 왜 또는 어떻게 고칠 수 있는지 아는 사람이 있습니까?
이제 수정되었습니다. 찾을 수 있습니다here.
Reference
이 문제에 관하여(시에르핀스키 삼각형), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/mouseannoying/sierpinski-triangle-2ci8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)