Avoid Overlapping Shapes


Author
Message
Alyson
Alyson
Associate Member (56 reputation)Associate Member (56 reputation)Associate Member (56 reputation)Associate Member (56 reputation)Associate Member (56 reputation)Associate Member (56 reputation)Associate Member (56 reputation)Associate Member (56 reputation)Associate Member (56 reputation)
Group: Forum Members
Posts: 4, Visits: 124
Hello,

I am trying to make a program where a random number of randomly sized circles appear on the screen in random positions. However, I do not want the circles to overlap. I know how to avoid having the circles have the same hposition and vposition, but I cannot figure out how to avoid overlap since the sizes are randomized (so even though no two circles can be at (20%, 20%), they could overlap since the second circle could be at (21%, 21%)). Is it possible to do this, and if so, how? Here is the code (I haven't written the code for all circles yet but they will be exactly the same as dots 1 and 2):

<defaults>
/ inputdevice = keyboard
/ fontstyle = ("Verdana", -13, false, false, false, false, 5, 0)
/ screencolor = grey
</defaults>

********STIMULI***********

<item text>
/1 = "+"
</item>

<text fixation>
/items = text
/select = 1
/hposition = 50%
/vposition = 50%
/fontstyle = ("Arial", 40, false, false, false, false, 5, 0)
/ txbgcolor = transparent
</text>

<shape dot1>
/shape = circle
/height = list.dot_size.nextvalue
/color = counter.dot_color1.selectedvalue
/hposition = list.h_position.nextvalue
/vposition = list.v_position.nextvalue
</shape>

<shape dot2>
/shape = circle
/height = list.dot_size.nextvalue
/color = counter.dot_color2.selectedvalue
/hposition = list.h_position.nextvalue
/vposition = list.v_position.nextvalue
</shape>

<list h_position>
/items = (10-90)
/ selectionrate = always
/selectionmode = random
</list>

<list v_position>
/items = (10-90)
/selectionrate = always
/selectionmode = random
</list>

<list dot_size>
/items = (20-40)
/selectionrate = always
/selectionmode = random
</list>

<counter dot_color1>
/items = (blue, yellow)
/select = noreplace
/ selectionrate = trial
</counter>

<counter dot_color2>
/items = (blue, yellow)
/select = noreplace
/not = (counter.dot_color1)
/selectionrate = trial
</counter>

********EXPERIMENT***********

<expt intro>
/blocks = [
    1=intro
]
</expt>

<block intro>
/trials = [
    1=intro
]
</block>

<trial intro>
/ stimulusframes = [1=dot1, dot2, fixation]
/validresponse = (203, 205)
</trial>
GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Threaded View

Reading This Topic

Explore
Messages
Mentions
Search