  # How to access the 2nd dimension

Discussion in 'Questions (Windows Mobile)' started by hung, Aug 14, 2007.

1. I have declare array as below:

dim type (x, y) shape(1000, 500)
first dimension is points in a polygon shape, e.g. shape(0, 1) to shape(1000,1) , that I use to draw polygon. shape(0, 2) to shape(1000,2) refers to another polygon.

when draw polygon, I use the code below:

for jj = 0 to cntshape - 1
for ii = 0 to cntpt(jj) - 1
ptstmp(ii).x = shape(ii, jj).x
ptstmp(ii).y = shape(ii, jj).y
next
form1.polygon(ptstmp(), 0, cntpt(jj) - 1, cBlack, F)
next

I found that in PPC, the above for ii loop takes time (i.e. slow as one second when draw over 10 shapes).

If I can refer to one of the dimension I should be able to avoid the for ii loop.
e.g.
form1.polygon(shape(,jj), 0, cntpt(jj) -1 , cBlack, F)

Or any other way to do so?

2. You can't "take" a part of a multi dimension array.
You should try to use a one dimension array from the start, or use ArrayLists instead.
This feature will be available in a future update (version 6.00).

3. Thanks I am planning to keep a series of shapes that each shape is a series of points.

I can not define like

dim type (x, y) pts(500)
dim shape(1000) as pts

So I have to two dimensions array.

It would be great if the version 6.0 allows variable decaration using self defined type like pts (points).

4. You could define:
Dim Type(x,y) pts(500000)
And now store the shapes in one sequence and draw each shape with something like:
Code:
`Form1.Polygon(pst(),ShapeNumber * 1000,LengthOfShape,...)`
That way there is no need to copy the points each time.

5. Thanks.