2014-10-19 3 views
1

패치 모양과 크기 대 원점을 이해하고 사용하는 데 조금이라도 도움이 필요합니다. 정확한 거북이 모양 아래에있는 패치를 표시하려고합니다. 예를 들어, 거북이가 (w x h)의 직사각형 인 경우 원점 패치뿐만 아니라 해당 모양 아래의 모든 패치의 색상이나 속성을 변경하고 싶습니다. 물론 직사각형을 사용하면 수동으로 패치의 색상을 지정할 수 있지만 더 복잡한 거북이 모양으로 패치를 수정하는 옵션이 있습니까? 고맙습니다.NetLogo에서 거북이 모양으로 가득 찬 패치

답변

2

알리아싱과 패치의 pcolor에 보이는 모든 개체 (거북이, 링크, 레이블, 드로잉 레이어 등)를 전송하는 것과 같은 사소한 문제가있는 깔끔한 방법이 있습니다. 그러나 적어도 그것은 가능합니다. 포함 된 비트 맵 확장을 이용합니다. 주요 아이디어는 아래 paint-patches에 있습니다.

extensions [bitmap] 

to setup 
    clear-all 
    resize-world 0 199 0 199 
    set-patch-size 1 
    ask n-of 30 patches [ sprout 1 [set size 15]] 
end 

to paint-patches 
    let bmap bitmap:from-view 
    bitmap:copy-to-pcolors bmap true 
    ask turtles [ht] ; to show that the turtle shape is now painted to pcolors 
end 
+0

와우는 netlogo에서 불가능한 기능에 대한 멋진 접근 방법입니다. 나는 비정상적인 모양의 거북이가 차지하고있는 일반적인 이미지의 프랙탈 차원을 파악하려고했습니다. 감사 –

0

NetLogo에서는 불가능합니다. 거북 모양은 순전히 시각적입니다. 거북이 모양의 정확한 윤곽에 액세스 할 수있는 방법이 없습니다. 그런 다음 윤곽선을 계산의 기초로 사용하십시오.

정사각형/삼각형/원형 등 알려진 작은 모양으로 작업하는 경우 각 사례를 개별적으로 처리하고 모양에 해당하는 색상 패치에 자신의 코드를 쓸 수 있습니다. 하지만이 기능이 인 경우 일반적으로이 붙어 있습니다.

확장 기능을 작성할 수는 있지만 확장 기능은 실제로 모양과 패치 그리드 사이의 겹침을 계산하는 작업을 수행하는 모든 원본 코드를 포함해야합니다. NetLogo에는 원하는 계산을하는 기존 코드가 없습니다.

관련 문제