quik1399
quik1399

Reputation: 185

Netlogo divide world into upper and lower

I am working in a program in Netlogo and I want to divide the world in upper-quadrant and lower-quadrant and ask turtles to move to the upper-quadrant. I have figured out how to divide the world in four quadrant from a previous question answered here, but I don't know how to divide it in two.

ask patches with [ pxcor <= max-pxcor and pxcor > 0  and pycor > 0]
  [
    set pcolor red
    set quadrant 1

  ]

  ask patches with [ pxcor >= min-pxcor and pxcor < 0  and pycor > 0]
  [
    set pcolor blue
    set quadrant 2
  ]

  ask patches with [ pxcor <= max-pxcor and pxcor > 0  and pycor < 0]
  [
    set pcolor green
    set quadrant 3
  ]

  ask patches with [ pxcor >= min-pxcor and pxcor < 0  and pycor < 0]
  [
    set pcolor yellow
    set quadrant 4
  ]

Upvotes: 0

Views: 328

Answers (1)

Matteo
Matteo

Reputation: 2926

Given that you are interested in a lower and an upper quadrant, you only need to look at y coordinates. The specific condition depends on where your world's origin (i.e. coordinates [0;0]) is.

If your world's origin is in the default position, which is the center, then do:

patches-own [
 quadrant 
]

to setup
  clear-all
  ask patches [
   ifelse (pycor > 0)
    [set quadrant 1]
    [set quadrant 2]
  ]
end

If your world's origin is in a corner (e.g. I assume bottom left corner in this case), just do:

patches-own [
 quadrant 
]

to setup
  clear-all
  ask patches [
   ifelse (pycor > max-pycor / 2)
    [set quadrant 1]
    [set quadrant 2]
  ]
end

If you don't know in advance where your world's origin will be, or if your world's origin is in a less common place than the two examples above, you can take a more generalised approach that fits any situation:

patches-own [
 quadrant 
]

to setup
  clear-all
  
  let y-extent (max-pycor - min-pycor + 1)
  ask patches [
   ifelse (pycor > y-extent / 2)
    [set quadrant 1]
    [set quadrant 2]
  ]
end

Upvotes: 4

Related Questions