рдореИрдВ рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдмрд╣реБрдд рдирдпрд╛ рд╣реВрдБ, рдЗрд╕рд▓рд┐рдП рдмрд╣рд╛рдирд╛ рдЕрдЧрд░ рдпрд╣ рдПрдХ рдмреЗрд╡рдХреВрдл рд╕рд╡рд╛рд▓ рд╣реИред
рдореЗрд░реА рд╕рдорд╕реНрдпрд╛:
рдореИрдВ рдПрдХ рдкреНрд░рд┐рдЬреНрдо (24 рд╡рд┐рдорд╛рдиреЛрдВ рдХреЗ рдмрд╣реБрднреБрдЬ рдХрд╛ рдирд┐рд░реНрдорд╛рдг) рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдЗрд╕рд▓рд┐рдП рдореЗрд░реЗ рдкрд╛рд╕ 24 рдкреНрд▓реЗрди рд╣реИрдВ, рдЙрдирдореЗрдВ рд╕реЗ рд╣рд░ рдХреЛрдИ 15 ┬░ рдПрдХ-рджреВрд╕рд░реЗ рдХрд╛ рд╕рдореВрд╣ рд╣реИ рдФрд░ рд╕рдореВрд╣реАрдХреГрдд рд╣реИред рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЧрдгрдирд╛ рдХрд░рдирд╛ рдЬрдЯрд┐рд▓ рд╣реИ рдХрд┐ x рдФрд░ z рдХреА рджреВрд░реА рдХрд┐рддрдиреА рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рджрд╛рдИрдВ рдУрд░ рдзреБрд░реА рдмрд┐рдВрджреБ рд╕реЗрдЯ рдХрд░рдиреЗ рдкрд░ рдпрд╣ рдЖрд╕рд╛рди рд╣реЛрдЧрд╛? рд╕рд╣реА? рдкрд░ рдХреИрд╕реЗ? рдпрд╛ рд╡рд╣рд╛рдБ рдПрдХ рд╕рд░реНрдХрд▓ рдмрдирд╛рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдЬреЛ рд╡рд┐рдорд╛рдиреЛрдВ рдХреЗ рд╣реЛрддреЗ рд╣реИрдВ?
рдореЗрд░реА рдЦрд░рд╛рдм рдЗрдВрдЧреНрд▓рд┐рд╢ рдХреЗ рд▓рд┐рдП рдорд╛рдлрд╝ рдХреАрдЬрд┐рдпреЗ :-/
рдЖрдкрдХреЗ рдкрд╛рд╕ рджреЛ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВред
рдЕрдкрдиреА рдЬреНрдпрд╛рдорд┐рддрд┐ рдореЗрдВ рд╕рднреА рдХреЛрдгреЛрдВ рдХреЛ рдмрдВрдж рдХрд░реЗрдВ:
geometry.applyMatrix( new THREE.Matrix4().setTranslation( 0, 10, 0 ) );
рдПрдХ рдРрд╕реА рд╡рд╕реНрддреБ рдмрдирд╛рдПрдВ рдЬреЛ рдзреБрд░реА рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░реЗрдЧреА:
mesh.position.y = 10;
var pivot = new THREE.Object3D();
pivot.add( mesh );
scene.add( pivot );
рдХреНрдпрд╛ рдЙрди рджреЛ рддрд░реАрдХреЛрдВ рдореЗрдВ рдХреЛрдИ рдкреЗрд╢реЗрд╡рд░реЛрдВ рдпрд╛ рд╡рд┐рдкрдХреНрд╖ рд╣реИ?
geometry.applyMatrix (рдирдпрд╛ THREE.Matrix4) (ред setTranslation (0, 10, 0));
рдЕрдм рд╣реИ
geometry.applyMatrix (рдирдпрд╛ THREE.Matrix4) (ред MakeTranslation (0, 10, 0));
https://github.com/mrdoob/three.js/commit/7f05ba167c522d1b9bac01677c2249b0f1b8c834
applyMatrix makeTranslation рдмрд╛рдд, рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ред рдкрддрд╛ рдирд╣реАрдВ рдХреНрдпреЛрдВред
рдзреБрд░реА рд╡рд╕реНрддреБ рдХрд╛рдо рдХрд░рддреА рд╣реИред рдФрд░ IMHO рдпрд╣ рдЖрд╕рд╛рди рд╣реИред
рдзреНрдпрд╛рди рджреЗрдВ:
рдЗрд╕реЗ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░реЛ
mesh.position.x = ###;
mesh.position.y = ###;
mesh.position.z = ###;
рдХреЗ рдмрдЬрд╛рдп:
mesh.position.set(###,###,###);
рдзрдиреНрдпрд╡рд╛рдж @placegraphichere , рдЬрд┐рд╕рдиреЗ рдорджрдж рдХреАред
рдпрджрд┐ рдЖрдк рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдРрд╕рд╛ рдХреБрдЫ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рддреАрди.js v78 рдХреЗ рд╕рд╛рде рднреА рдХрд╛рдо рдХрд░реЗрдВред рдЗрд╕рдХреЗ рдХреЗрдВрджреНрд░ рдХреЗ рдмрдЬрд╛рдп рдЕрдкрдиреА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдХрд┐рдирд╛рд░реЗ рдкрд░ рдШреВрдореЗрдВ:
.js
mesh.geometry.translate( -myObjectWidth/2, 0, 0 );
рд▓реЗрдХрд┐рди рдЗрд╕ рдмрд╛рдд рдХрд╛ рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ geometry.translate()
рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рднреА рдЪрдХреНрдХрд░реЛрдВ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИред рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рд╣реИ рдЬрдм рддрдХ рдЖрдк рдмрд╛рдж рдореЗрдВ рдлрд┐рд░ рд╕реЗ рдзреБрд░реА рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдирд╣реАрдВ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВред
рдореИрдВ рдЕрдкрдиреЗ рдЬрд╛рд▓ (3 рдбреА рдмреЙрдХреНрд╕ рдХрдВрдЯреЗрдирд░) рдХреЛ рдореВрд▓ рд╕реЗ рдмрд╛рдПрдВ рдХреЛрдиреЗ рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдЗрд╕рд▓рд┐рдП рдЬрдм рдореИрдВ рдХрдВрдЯреЗрдирд░ рдХреЗ рдЬрд╛рд▓ рдХреЗ рдЕрдВрджрд░ рдХрд┐рд╕реА рдЕрдиреНрдп рдЫреЛрдЯреЗ рдЬрд╛рд▓ рдмреЙрдХреНрд╕ рдХреЛ рдЬреЛрдбрд╝реВрдВрдЧрд╛, рддреЛ рдЗрд╕реЗ рдХреЗрдВрджреНрд░ рдореЗрдВ рд░рдЦрдиреЗ рдХреЗ рдмрдЬрд╛рдп рдмрд╛рдПрдВ рдирд┐рдЪрд▓реЗ рдХреЛрдиреЗ рдХреЗ рдЕрдВрджрд░ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
mesh.geometry.translate (-myObjectWidth / 2, 0, 0);
рдЬрдм рдореИрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рддреЛ рдореЗрд░реА рдЬрд╛рд▓реА рдХреА рд╕реНрдерд┐рддрд┐ рднреА рдмрджрд▓ рд░рд╣реА рд╣реИ
@imguccho рдХреГрдкрдпрд╛, рдорджрдж рдХреЗ рд▓рд┐рдП рдордВрдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рдореИрдВ ArrowHelper рдХреЗ рд▓рд┐рдП рдмрд┐рдВрджреБ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХреИрд╕реЗ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдЖрдкрдХреЗ рдкрд╛рд╕ рджреЛ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВред
рдЕрдкрдиреА рдЬреНрдпрд╛рдорд┐рддрд┐ рдореЗрдВ рд╕рднреА рдХреЛрдгреЛрдВ рдХреЛ рдмрдВрдж рдХрд░реЗрдВ:
рдПрдХ рдРрд╕реА рд╡рд╕реНрддреБ рдмрдирд╛рдПрдВ рдЬреЛ рдзреБрд░реА рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░реЗрдЧреА: