|Message: Re: Has anyone tried rotate(angle,axis)?||Not Logged In (login)|
Click on the Forum title, e.g. on the "Forums by Category" page, to read a sequence of postings to the Forum and its threads all in one page. If you are only interested in one thread or the thread following a specific posting, click the thread or the posting, which takes you to a smaller page, which contains only the part you are interested in and may be easier to navigate.
Messages are "chained" if there are only replies at the first level, i.e. 1/1.html, 1/1/1.html etc. In case of "chained" messages the message number is replaced by the icon and there is no indentation.
Inline: Display the subject line only or also the text of the posting(s); for the choice "All" the "Outline" choices are switched off.
|1||0||1||no text / full text of posting|
|2||1||All||text for level 1 only / text for All postings|
Outline: Choose the depth of the posting thread, successive toggle controls provide increasing detail.
|1||2||1||2 levels / 1 level (original posting)|
|2||3||2||3 levels / 2 levels|
|3||3||All||3 levels / all levels (all postings)|
Dear Huagang Yan,
To fix the issue it is sufficient just to change the order of rotations in your code:
G4double anglet2 = 30*degree; testrot2->rotate(anglet2,axis); testrot2->rotateY(45*degree);
However, I strongly recommend you to use a constructor with G4Transform3D (which describes a direct transformation of the object):
G4double anglet1 = 0*degree; testrot1->rotateY(-45*degree); testrot1->rotate(anglet1,axis);
G4double anglet2 = 30*degree; testrot2->rotateY(-45*degree); testrot2->rotate(anglet2,axis);
G4double anglet3 = 60*degree; testrot3->rotateY(-45*degree); testrot3->rotate(anglet3,axis);
G4double anglet4 = 90*degree; testrot4->rotateY(-45*degree); testrot4->rotate(anglet4,axis);
G4double anglet5 = 120*degree; testrot5->rotateY(-45*degree); testrot5->rotate(anglet5,axis);
G4Transform3D tra1(*testrot1, position1); G4Transform3D tra2(*testrot2, position2); G4Transform3D tra3(*testrot3, position3); G4Transform3D tra4(*testrot4, position4); G4Transform3D tra5(*testrot5, position5);
Please note, that rotations are performed in a counterclockwise direction, so to put the cylinder in a position perpendicular to the axis of further rotation, you should apply rotateY(-45*degree)
|Inline Depth:||Outline Depth:||Add message:|