increasing/decreasing percentage - pie chart/ circular graph

Matt Paffel mpaffel at gmail.com
Wed May 5 16:23:52 UTC 2010


wow, thanks a lot to the both of you! what a nice bit of information
to find upon arrivign to work thsi morning!

On May 5, 11:00 am, Michiel Spape <Michiel.Sp... at nottingham.ac.uk>
wrote:
> Just as MatLab started half an hour of calculations, I see your corrections and thought I could add the following:
>
> If IsNumeric(mySlide.RESP) then
>         If (currentPerc + cint(mySlide.RESP)-5 > 0) AND (currentPerc + cint(mySlide.RESP)-5 < 100) then _
>         currentPerc = currentPerc + cint(mySlide.RESP)-5
>         c.SetAttrib("myPicture"), "pie" & cstr(currentPerc) & ".bmp"
>         goto Label1
> End if
> ... no need for else; any numberic key will be seen as an increment or decrement of the pie (9 point scale, bit biased to save code).
> Best,
> Mich
>
> Michiel Spapé
> Research Fellow
> Perception & Action group
> University of Nottingham
> School of Psychology
>
>
>
> -----Original Message-----
> From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of David McFarlane
> Sent: 05 May 2010 15:14
> To: e-prime at googlegroups.com
> Subject: Re: increasing/decreasing percentage - pie chart/ circular graph
>
> Sorry, couldn't quite let that pair of exhaustive-and-mutually-exclusive
> If...Thens stand (and while at it also added a couple comments, and used
> line continuation characters to break long lines):
>
> If mySlide.resp = 2 then  ' increase pie slice
>      If c.GetAttrib("CurrentPerc") < 100 then _
>          c.SetAttrib("CurrentPerc"), c.GetAttrib("CurrentPerc") + 1
>      c.SetAttrib("myPicture"), "pie" & cstr(c.GetAttrib("CurrentPerc")) _
>          & ".bmp"
>      goto Label1
> ElseIf mySlide.resp = 1 then  ' decrease pie slice
>      If c.GetAttrib("CurrentPerc") > 1 then c.SetAttrib("CurrentPerc"), _
>          c.GetAttrib("CurrentPerc") - 1
>      c.SetAttrib("myPicture"), "pie" & cstr(c.GetAttrib("CurrentPerc")) _
>          & ".bmp"
>      goto Label1
> End If
>
> Might also use a variable instead of an attribute reference for
> CurrentPerc, thus,
>
> Dim  currentPerc
> If mySlide.resp = 2 then  ' increase pie slice
>      If (currentPerc < 100) then currentPerc = currentPerc + 1
>      c.SetAttrib("myPicture"), "pie" & cstr(currentPerc) & ".bmp"
>      goto Label1
> ElseIf mySlide.resp = 1 then  ' decrease pie slice
>      If (currentPerc > 1) then currentPerc = currentPerc - 1
>      c.SetAttrib("myPicture"), "pie" & cstr(currentPerc) & ".bmp"
>      goto Label1
> End If
>
> And to complete the exercise, let's use Select...Case:
>
> Dim  currentPerc
> Select Case mySlide.RESP
>    Case 2  ' increase pie slice
>      If (currentPerc < 100) then currentPerc = currentPerc + 1
>      c.SetAttrib("myPicture"), "pie" & cstr(currentPerc) & ".bmp"
>      goto Label1
>    Case 1  ' decrease pie slice
>      If (currentPerc > 1) then currentPerc = currentPerc - 1
>      c.SetAttrib("myPicture"), "pie" & cstr(currentPerc) & ".bmp"
>      goto Label1
> End Select
>
> -- David McFarlane, Professional Faultfinder
>
> On 5 May 2010 Michiel Spape wrote:
> > Hi,
> > A) You could, of course, just do away with almost all of the inline code, make some nice graphics yourself and just making a little procedure with a slide and a loop. Just name your 100 pictures of pies to be something like pie50.bmp (for 50%). Have a slide (mySlide, with, importantly, a reference to attribute [myPicture]), a little label before that (Label1), a single inline after that:
>
> > If mySlide.resp = 2 then
> >    If c.GetAttrib("CurrentPerc") < 100 then c.SetAttrib("CurrentPerc"), c.GetAttrib("CurrentPerc") + 1
> >    c.SetAttrib("myPicture"), "pie" & cstr(c.GetAttrib("CurrentPerc")) & ".bmp"
> >    goto Label1
> > end if
> > If mySlide.resp = 1 then
> >    If c.GetAttrib("CurrentPerc") > 1 then c.SetAttrib("CurrentPerc"), c.GetAttrib("CurrentPerc") - 1
> >    c.SetAttrib("myPicture"), "pie" & cstr(c.GetAttrib("CurrentPerc")) & ".bmp"
> >    goto Label1
> > end if
>
> > Should work. Any response other than 1 or 2 is taken as final answer.
>
> > B) If you insist on using loads of canvas, my advice is to do something similar to the above - i.e. check for a response (for instance, just use a little, blank textdisplay with duration 0 and timelimit infinite), or even continually check for a response, loop, &c.
>
> > Best,
> > Mich
>
> > Michiel Spapé
> > Research Fellow
> > Perception & Action group
> > University of Nottingham
> > School of Psychology
>
> > -----Original Message-----
> > From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of Matt Paffel
> > Sent: 04 May 2010 20:14
> > To: E-Prime
> > Subject: increasing/decreasing percentage - pie chart/ circular graph
>
> > Hello,
>
> > I'm trying to develop a behavioral choice task in which a participant
> > will be able to increase or decrease a percentage of pie dependent
> > upon the contingency of the experiment. I've attached the code that I
> > was planning on using, which I took from the e-basic help file. There
> > are a couple of lines that I plan on removing from the script such as
> > the lines referencing "random" and "nCount". However, overall this is
> > aesthetically what I want the program to look like. My question is; I
> > want the participant to be able to increase and decrease the
> > percentage of pie using the 1 and 2 keys. I'm having trouble finding
> > lines of script, or references pertaining to, what I'd like to achieve
> > within the design. Does anyone have any suggestions?
>
> > 'Create a Canvas
> > Dim cnvs As Canvas
> > 'Set cnvs as the current, onscreen canvas
> > Set cnvs = Display.Canvas
> > 'Declare variables used to set the size of the canvas
> > Dim XRes As Integer, YRes As Integer
> > 'Set the canvas size as the entire screen resolution
> > XRes = Display.XRes
> > YRes = Display.YRes
>
> > 'Declare and initialize variables to be used when drawing the sections
> > of the circle
> > Const nRadius As Integer = 100
> > Dim nStartAngle As Integer, nEndAngle As Integer
> > Dim nCount As Integer
>
> > 'Initialize variables
> > nStartAngle = 90
> > nEndAngle = 90
>
> > 'Declare variables to be used to randomly select the delay value
> > Dim nRandom As Integer
> > Dim nDelay As Integer
> > 'Select a random number to determine the value of the delay between
> > the drawing of each section of the circle
> > nRandom = Random (1, 2)
> > 'If the random number chosen is 1, the nDelay value is set to 500 ms.
> > 'Otherwise, the nDelay value is set to 1000 ms.
> > If nRandom = 1 Then
> > nDelay = 500
> > Else
> > nDelay = 1000
> > End If
>
> > 'Set color of pen for pie slice
> > cnvs.PenColor = CColor("red")
> > cnvs.FillColor = CColor("red")
> > 'The For...Next statement repeats a block of statements a specified
> > number of times
> > 'incrementing a loop counter by a given increment each time through
> > the loop
> > 'In this sample, the nCount variable is incremented by one each time
> > through the loop allowing ten pie slices to be drawn.
>
> > For nCount = 1 to 10
>
> > 'Adjust startAngle to specify where to start each section of the
> > circle each time a pie slice is drawn
> > nStartAngle = nStartAngle - 36
> > 'Draw a pie slice with center point at x, y and radius r, starting at
> > startAngle and drawing to endAngle.
> > cnvs.Pie XRes/2, YRes/2, nRadius, nStartAngle, nEndAngle
> > 'Sleep before drawing next pie slice
> > Sleep nDelay
> > Next nCount
> > 'Set fill color to white before clearing canvas
> > cnvs.FillColor = CColor("white")
> > 'Clear canvas
> > cnvs.clear
> > 'Set the value of the delay as an attribute in the data file
>
> > Thank you.
>
> --
> You received this message because you are subscribed to the Google Groups "E-Prime" group.
> To post to this group, send email to e-prime at googlegroups.com.
> To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com.
> For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en.
>
> This message has been checked for viruses but the contents of an attachment
> may still contain software viruses which could damage your computer system:
> you are advised to perform your own checks. Email communications with the
> University of Nottingham may be monitored as permitted by UK legislation.
>
> --
> You received this message because you are subscribed to the Google Groups "E-Prime" group.
> To post to this group, send email to e-prime at googlegroups.com.
> To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com.
> For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en.- Hide quoted text -
>
> - Show quoted text -

-- 
You received this message because you are subscribed to the Google Groups "E-Prime" group.
To post to this group, send email to e-prime at googlegroups.com.
To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com.
For more options, visit this group at http://groups.google.com/group/e-prime?hl=en.



More information about the Eprime mailing list