<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Jan 9, 2015 at 12:49 PM,  <span dir="ltr"><<a href="mailto:semeon.risom@gmail.com" target="_blank">semeon.risom@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5">On Thursday, 8 January 2015 20:54:38 UTC-6, Denis McMahon  wrote:<br>
> On Thu, 08 Jan 2015 22:07:03 +0000, Denis McMahon wrote:<br>
><br>
> > On Thu, 08 Jan 2015 09:09:18 -0800, semeon.risom wrote:<br>
> ><br>
> >> Simple question. I hope. .....<br>
><br>
> To follow up, below is a solution to the problem you stated.<br>
><br>
> #!/usr/bin/python<br>
><br>
> import Image, ImageDraw, math<br>
><br>
> def makeimg(length, orientation):<br>
>     """<br>
>     Make an image file of a black 4 pixel wide line of defined length<br>
>     crossing and centered on a white background of 800 px square, save<br>
>     as a png file identifying line length and orientation in the file<br>
>     name.<br>
>     param length - pixels, length of the line<br>
>     param orientation - degrees, orientation ccw of the line from +ve x<br>
>     axis<br>
>     Files are saved in imgs subdir, this must already exist.<br>
>     File name is image_lll_ooo.jpg<br>
>     lll = length, ooo = orientation, both 0 padded to 3 digits<br>
>     """<br>
><br>
>     # check length is +ve and not greater than 800<br>
>     if length < 0:<br>
>         length = length * -1<br>
>     if length > 800:<br>
>         length = 800<br>
><br>
>     # check orientation is positive in range 0 .. 179<br>
>     while orientation < 0:<br>
>         orientation = orientation + 360<br>
>     if orientation > 179:<br>
>         orientation = orientation % 180<br>
><br>
>     # calculate radius in pixels and orientation in radians<br>
>     radius = length / 2<br>
>     orient = math.radians(orientation)<br>
><br>
>     # calculate xy coords in image space of line end points<br>
>     x1 = int(400 + (radius * math.cos(orient)))<br>
>     y1 = int(400 - (radius * math.sin(orient)))<br>
>     x2 = int(400 + (-radius * math.cos(orient)))<br>
>     y2 = int(400 - (-radius * math.sin(orient)))<br>
><br>
>     # create an image<br>
>     img = Image.new('RGB', (800,800), 'rgb(255, 255, 255)')<br>
>     # create a draw interface<br>
>     draw = ImageDraw.Draw(img)<br>
><br>
>     # draw the line on the image<br>
>     draw.line([(x1, y1), (x2, y2)], fill='rgb(0, 0, 0)', width=4)<br>
><br>
>     # determine file name, save image file<br>
>     fn = 'imgs/image_{:03d}_{:03d}.jpg'.format(length,orientation)<br>
>     img.save(fn)<br>
><br>
> # stepping through ranges of values<br>
> for length in range(100, 601, 100):<br>
>     for orientation in range(0, 171, 10):<br>
>         makeimg(length, orientation)<br>
><br>
> # using lists of values<br>
> for length in [50, 150, 250, 350, 450, 550, 650]:<br>
>     for orientation in [0, 15, 40, 45, 60, 75, 90, 105, 120, 135, 150,<br>
> 165]:<br>
>         makeimg(length, orientation)<br>
><br>
><br>
><br>
><br>
> --<br>
> Denis McMahon, <a href="mailto:denismfmcmahon@gmail.com">denismfmcmahon@gmail.com</a><br>
<br>
</div></div>Thank you for the help btw. I think I'm close to a solution, but I'm having issue feeding the coordinates from my csv file into the formula.<br>
<br>
This is the error I get:<br>
Traceback (most recent call last):<br>
  File "C:\Users\Owner\Desktop\Stimuli Generation\Coordinates\Generate_w corr.py", line 68, in <module><br>
    makeimg(length, orientation)<br>
  File "C:\Users\Owner\Desktop\Stimuli Generation\Coordinates\Generate_w corr.py", line 40, in makeimg<br>
<span class="">    orientation = orientation % 180<br>
</span>TypeError: unsupported operand type(s) for %: 'list' and 'int'<br>
>>><br>
<br>
and here's the code:<br>
<br>
from PIL import Image, ImageDraw<br>
from numpy import math<br>
<br>
# import csv<br>
import csv<br>
f = open('C:\Users\Owner\DesktopStimuli Generation\Coordinates\file.csv', 'rb')<br>
rdr = csv.reader(f)<br>
f.seek(0)<br>
i = 0<br>
a = []<br>
b = []<br>
for row in rdr:<br>
        a.append(row[0])<br>
        b.append(row[1])<br>
<div><div class="h5"><br>
def makeimg(length, orientation):<br>
    """<br>
    Make an image file of a black 4 pixel wide line of defined length<br>
    crossing and centered on a white background of 800 px square, save<br>
    as a png file identifying line length and orientation in the file<br>
    name.<br>
    param length - pixels, length of the line<br>
    param orientation - degrees, orientation ccw of the line from +ve x<br>
    axis<br>
    Files are saved in imgs subdir, this must already exist.<br>
    File name is image_lll_ooo.jpg<br>
    lll = length, ooo = orientation, both 0 padded to 3 digits<br>
    """<br>
<br>
    # check length is +ve and not greater than 800<br>
    if length < 0:<br>
        length = length * -1<br>
    if length > 800:<br>
        length = 800<br>
<br>
    # check orientation is positive in range 0 .. 179<br>
    while orientation < 0:<br>
        orientation = orientation + 360<br>
    if orientation > 179:<br>
        orientation = orientation % 180<br>
<br>
    # calculate radius in pixels and orientation in radians<br>
    radius = length / 2<br>
    orient = math.radians(orientation)<br>
<br>
    # calculate xy coords in image space of line end points<br>
    x1 = int(400 + (radius * math.cos(orient)))<br>
    y1 = int(400 - (radius * math.sin(orient)))<br>
    x2 = int(400 + (-radius * math.cos(orient)))<br>
    y2 = int(400 - (-radius * math.sin(orient)))<br>
<br>
    # create an image<br>
    img = Image.new('RGB', (800,800), 'rgb(255, 255, 255)')<br>
    # create a draw interface<br>
    draw = ImageDraw.Draw(img)<br>
<br>
    # draw the line on the image<br>
    draw.line([(x1, y1), (x2, y2)], fill='rgb(0, 0, 0)', width=4)<br>
<br>
    # determine file name, save image file<br>
    fn = 'imgs/image_{:03d}_{:03d}.jpg'.format(length,orientation)<br>
    img.save(fn)<br>
<br>
<br>
</div></div><span class=""># using lists of values<br>
</span>for length in [a]:<br>
    for orientation in [b]:<br>
        makeimg(length, orientation)<br></blockquote><div><br></div><div>above should be:</div><div>   for length in a:</div><div>      for orientation in b:</div><div><br></div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<span class="HOEnZb"><font color="#888888">--<br>
<a href="https://mail.python.org/mailman/listinfo/python-list" target="_blank">https://mail.python.org/mailman/listinfo/python-list</a><br>
</font></span></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr"><div>Joel Goldstick<br></div><a href="http://joelgoldstick.com" target="_blank">http://joelgoldstick.com</a><br></div></div>
</div></div>