# How to change the points color in the result of “show [Graphics3D]” [closed]

I'm new to mathematica software, this going to be difficult to explain but, I have an assignment to make a random numbers generator for upper-limb joints range of movement [ROM].

I divided the joints into 2 groups, shoulder group with 3 ROM, and the second group is Elbow-forearm, witch has 2 ROM. both groups have a limit range of movement [ROM] and I divided it to 4 ranges for comparison.

I think the table on the attached photo at the end will make it easy to understand what I'm trying to explain.

so, I wrote the code @mathematica and its fine, but in the result I tried many times to change the points color but I couldn't. I would like to change the color of the points so I can compare it easily later. also if you have any other ideas for showing the result in a different and nice graphics, please tell me.

note: I posted 1 code for 1 group and 1 range. the [ixx,iyy,izz] in the code is [θ1,θ2,θ3] for group 1.

a2 = 1.41421356; a3 = 1.7320508; pi = 3.141592;
ixx = 45;
iyy = 45;
izz = 15;
iran = ixx*iyy*izz;
ixy = ixx*iyy;
r1 = a2*iran;
r2 = a3*iran;
r3 = pi*iran;
print[iran];
rnd = 1.23456;
rnd = 5.43210;
rnd = 2.71828;
Do[ir1[i] = i;
rndi = r1*rnd + r2*rnd + r3*rnd;
irnd = IntegerPart[rndi];
irn0 = IntegerPart[rndi/iran];
ri00 = irn0*iran;
ir00 = IntegerPart[ri00];
ir10[i] = irnd - ir00;
rnd = rnd;
rnd = rnd;
rnd = rndi - ri00,{i, 1, iran}];
Do[ir = ir10[j];
j1 = ir1[j];
i1 = ir1[ir];
ir1[j] = i1;
ir1[ir] = j1, {j, 1, iran}];
Do[iri = ir1[k];
iz0 = IntegerPart[iri/ixy];
iz[k] = iz0 + 1;
iy0 = IntegerPart[(iri - iz0*ixy)/ixx];
iy[k] = iy0 + 1;
ix[k] = iri - iz0*ixy - iy0*ixx + 1, {k, 1, iran}];
Do[,{i, 1, iran}];
xyz1 = Table[Point[{ix[i], iy[i], iz[i]}], {i, 1, iran}]
Show[Graphics3D[xyz1], Axes -> True] • thank you for replying, I did mention in the notes how to make it run fast witch will take only 3-5 sec for the result. I thought it would be necessary to show the whole code. apology for that. the main problem its at the end of the code; Do[i, 1, iran]; xyz1 = Table[Point[{ix[i], iy[i], iz[i]}], {i, 1, iran}] Show[Graphics3D[xyz1], Axes -> True] – Hwajees Jan 30 '17 at 7:02
• I have change it and deleted the "Print" in the code now its will take 2-5 sec to run. thanks again for the comment. – Hwajees Jan 30 '17 at 7:07

As to how to change the color, you may write the very last code line a bit changed:

Show[Graphics3D[{Red, xyz1}], Axes -> True]


with the effect: or even this way indicating by colors layers of points with different height :

lst = Table[{ix[i], iy[i], iz[i]}, {i, 1, iran}];
Manipulate[
ListPointPlot3D[lst, ColorFunction -> Function[{x, y, z}, Hue[z/n]]], {n, Range}]


and try to play with n. For n=6 it looks as follows: Besides you fave a few unnecessary lines containing syntactic errors. These are (1) print[iran]; and (2) Do[,{i, 1, iran}];. You can remove them without any loss.

Evidently, this code is written in a procedural way, while in Mma it could be rewritten in a much more concise fashion, but here it is difficult to help you without knowing your ideas of what is done during the calculations. In a moment it is not vitally necessary, however, since the code works fast enough.

Have fun!