Correct serrated or burr losangle after drawing a diamond polygon

David McFarlane mcfarla9 at msu.edu
Mon Jan 13 19:59:07 UTC 2014


Camila,

Just a few comments...

1) I really do not get why you do not want to do this with Slides, 
and then get rid of all the inline code.

2) Lines like
     c.getattrib("TargetImage") = "DiamondLeft.bmp"
are illegal.  c.getattrib("TargetImage") returns a value, and it 
makes no sense to assign a value to a returned value.  If you have 
trouble with that, then it means that you need to take a course in 
Introduction to Programming.

3) Judging from other mistakes (e.g., '"WRITE" = "DiamondLeft.bmp"', 
which makes no sense), I get the feeling that you need to get a fair 
bit of background knowledge before anything said here will 
help.  Once again, this points toward taking a course in Introduction 
to Programming.

4) But if you really want to do it on your own, then start with the 
general comments at https://groups.google.com/d/topic/e-prime/VCXgOWjKtCg .

Best,
-- David McFarlane


At 1/13/2014 11:10 AM Monday, Camila Gomes Victorino wrote:
>Hi David!
>Thank you for your answer!
>As I wrote my TrialProc as a queue of InLines (each one composing a 
>canvas, showing different figures until feedback), using the Slide 
>Image would create other canvas, different from the others and I 
>don`t know if it is possible to mix two canvas in one, for example, 
>some inline figures to the Images in SlideImage, all at once, so
>I employed your idea, creating two images.bmp (one with left diamond 
>and right square and other with right diamond and left square) and 
>created a row in the TrialList, called TargetImage, linking each 
>image file to a specific target in the trialList. After that, I came 
>back to the Inline where the serrated diamond was written and tried 
>to write the code to load and show this two images, based on the 
>TrialList. The problem is I am having trouble to discover what to do.
>
>In the part where the serrated diamond was written, I changed to:
>'Show targets
>If c.getattrib("Target") = "Diamond" Then
>c.getattrib("TargetImage") = "DiamondLeft.bmp"
>Else
>'Write a Diamond
>c.getattrib("TargetImage") = "DiamondRight.bmp"
>End If
>
>When I compile it says: "Can't assign to constant". I suspect I need 
>to load the images first but I don`t know how to do it! Or I need to 
>declare and set the bmp file (no clues!!).
>
>Other solution I figured out was to write a code to load and show 
>the images directly. For example:
>'Show targets
>If c.getattrib("Target") = "Diamond" Then
>"WRITE" = "DiamondLeft.bmp"
>Else
>'Write a Diamond
>"WRITE" = "DiamondRight.bmp"
>End if
>
>The problem is I tried everything! I went to E-prime Help and copied 
>and tried to use Canvas.LoadImage, ImageDisplay.Filename and 
>ImageDisplay.Load but I`ve never succeed!
>Maybe it is a simple answer but I am a novice in programming. Any advice?
>
>Thank you for your help!
>Regards, Camila.
>
>Em quinta-feira, 9 de janeiro de 2014 19h24min20s UTC, McFarlane, 
>David escreveu:
>Hmm.  I normally decline to look at extensive code samples or
>attached programs, but you made it very easy and I was curious.  So I
>ran your code, and indeed got bad jagged edges for the diamonds.  I
>thought I could just attribute this to low Display resolution (640 x
>480 default), but got the same bad results at all other resolutions
>(max 1680 x 1050 on my machine), working with either EP1 or EP2.  So
>it seems that the E-Basic Canvas.Polygon command simply does not do a
>good job of anti-aliasing (see
><http://en.wikipedia.org/wiki/Spatial_anti-aliasing>http://en.wikipedia.org/wiki/Spatial_anti-aliasing 
>for background information).
>
>Instead, you should make image files for your diamond and other
>shapes, then simply load those images to the Display as needed.  This
>has the advantage that you can use good software to prepare your
>images and it will simplify your E-Basic code as you can simply
>redraw the same image to different defined locations.
>
>Come to think of this, using image files and Slides, you should be
>able to do this with no E-Basic code at all (I should have thought of
>this first, as this is the norma E-Prime way!).  Just make a Slide
>with SlideImage sub-objects to hold your square and diamond images,
>then use attribute references from a List to assign the Position X &
>Y properies for each of those sub-objects.  Easy-peasy (as long as
>you do not need too many diamond angles)!
>
>-----
>David McFarlane
>E-Prime training
>online: 
><http://psychology.msu.edu/Workshops_Courses/eprime.aspx>http://psychology.msu.edu/Workshops_Courses/eprime.aspx 
>
>Twitter:  @EPrimeMaster 
>(<https://twitter.com/EPrimeMaster>https://twitter.com/EPrimeMaster )
>
>/----
>Stock reminder:  1) I do not work for PST.  2) PST's trained staff
>take any and all questions at 
><https://support.pstnet.com>https://support.pstnet.com , and they
>strive to respond to all requests in 24-48 hours, so make full use of
>it.  3) In addition, PST offers several instructional videos on their
>YouTube channel 
>(<http://www.youtube.com/user/PSTNET>http://www.youtube.com/user/PSTNET 
>).  4) If you do
>get an answer from PST staff, please extend the courtesy of posting
>their reply back here for the sake of others.
>\----
>
>
>At 1/8/2014 09:56 AM Wednesday, Camila Gomes Victorino wrote:
> >I have a binary decision making task where the subject needs to find
> >out the diamond or losangle in one of the two sides. In the other
> >one, there is a square and it needs to be identical to the diamond
> >(just the angle position changes). I tried to draw the losangle and
> >it worked, the problem is that the stimulus appears with serrated or
> >burr sides. I tried to fix it putting the cnvs.penwidth and
> >modifying it but it changes a lot the diamond and it needs to be
> >identical to the square. I do not know how to fix it and get the
> >serrated burrs out.
> >
> >I wrote the code as this:
> >
> >  'Declare variables
> >Dim r, centerX, centerY As Integer
> >
> >'Create canvas
> >Set cnvs = Display.Canvas
> >cnvs.FillColor = CColor("White")
> >cnvs.Clear
> >
> >'Create fixation point
> >cnvs.TextColor = CColor ("black")
> >cnvs.FontName = "Courier New"
> >cnvs.FontSize = "18"
> >cnvs.FontBold = CLogical("Yes")
> >cnvs.Text 313, 228, "+"
> >
> >'Create gray squares
> >cnvs.Pencolor = CColor("Gray")
> >cnvs.Fillcolor = CColor("White")
> >cnvs.Rectangle 255, 205, 55, 62
> >cnvs.Rectangle Display.XRes -310, 205, 55, 62
> >
> >'Show targets
> >cnvs.Pencolor = CColor("black")
> >cnvs.Fillcolor = CColor("black")
> >If c.getattrib("Target") = "Diamond" Then
> >'Write a left diamond
> >Dim P (4) As Point
> >P(0).x = 280
> >P(0).y = 218
> >P(1).x = 296
> >P(1).y = 239
> >P(2).x = 280
> >P(2).y = 256
> >P(3).x = 265
> >P(3).y = 239
> >cnvs.Polygon P, 4
> >
> >cnvs.Rectangle 345, 222, 25, 30
> >Else
> >'Write a Rectangle
> >cnvs.Rectangle 270, 222, 25, 30
> >'Write a Diamond
> >
> >Dim L (4) As Point
> >L(0).x = 357
> >L(0).y = 218
> >L(1).x = 373
> >L(1).y = 239
> >L(2).x = 357
> >L(2).y = 256
> >l(3).x = 342
> >L(3).y = 239
> >cnvs.Polygon L, 4
> >
> >
> >End If
> >
> >Sleep (1000)
> >
> >Thank you!
> >Best regards,
>
>--
>You received this message because you are subscribed to the Google 
>Groups "E-Prime" group.
>To unsubscribe from this group and stop receiving emails from it, 
>send an email to e-prime+unsubscribe at googlegroups.com.
>To post to this group, send email to e-prime at googlegroups.com.
>To view this discussion on the web visit 
><https://groups.google.com/d/msgid/e-prime/dcc3a442-d83a-421a-913f-3dc15ec035fe%40googlegroups.com>https://groups.google.com/d/msgid/e-prime/dcc3a442-d83a-421a-913f-3dc15ec035fe%40googlegroups.com.
>For more options, visit 
><https://groups.google.com/groups/opt_out>https://groups.google.com/groups/opt_out.

-- 
You received this message because you are subscribed to the Google Groups "E-Prime" group.
To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com.
To post to this group, send email to e-prime at googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/e-prime/52d44590.aa49320a.6558.ffff9130SMTPIN_ADDED_MISSING%40gmr-mx.google.com.
For more options, visit https://groups.google.com/groups/opt_out.



More information about the Eprime mailing list