Am 25.07.10 06:38, schrieb Ian Mallett:
So I have a square 2D array, and I want to fill the array with sine values. The values need to be generated by their coordinates within the array.
The center of the array should be treated as the angle 90 degrees. Each of the four edges should be 0 degrees. The corners, therefore, ought to be -sqrt(2)*90 degrees. The angle is equal to (distance_from_center/(dimension_of_array/2))*90 degrees. Then take the sine of this angle.
To describe another way, if the array is treated like a height-field, a single mound of the sine wave should just fit inside the array.
Right now, I'm having trouble because I don't know how to operate on an array's values based on the index of the values themselves.
Something like that?
The mgrid thing returns two 2D arrays containing the x- and y-coordinates which are then used to calculate the height field.
In : import numpy as N
In : x,y = N.mgrid[-N.pi/2.0:N.pi/2.0:100j,-N.pi/2.0:N.pi/2.0:100j]
In : z = N.sin(N.sqrt(x**2+y**2))