用途によってやり方は色々とあると思うので、質問を具体的にすると回答を頂きやすいのではないかと思います。
おそらく MGetRot 系の関数で回転行列を得て VTransform で座標を計算するのが基本だと思います。
※追記
書き忘れましたが、座標の回転は常に原点中心にみたてて計算する必要があります(たぶん)。
//- 以下、サンプル -//
#include "DxLib.h"
const VECTOR REVOLVE_AXIS_G = { 0.0f, 1.0f, 0.0f };
const VECTOR REVOLVE_AXIS_B = { 1.0f, 0.0f, 0.0f };
const float REVOLVE_RATE_G = TWO_PHI_F / 360.0f;
const float REVOLVE_RATE_B = TWO_PHI_F / 360.0f * 4.0f;
const VECTOR LOCAL_POS_R = { 0.0f, 0.0f, 0.0f };
const VECTOR LOCAL_POS_G = { 300.0f, 0.0f, 0.0f };
const VECTOR LOCAL_POS_B = { 0.0f, 50.0f, 0.0f };
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
ChangeWindowMode( TRUE );
if ( DxLib_Init( ) == -1 ) return -1;
SetDrawScreen( DX_SCREEN_BACK );
int StrColor = GetColor( 255, 255, 255 );
SetUseZBuffer3D( TRUE );
SetWriteZBuffer3D( TRUE );
SetCameraPositionAndTarget_UpVecY( VGet( 0.0f, 0.0f, -800.0f ), VGet( 0.0f, 0.0f, 0.0f ) );
VECTOR pos_r = LOCAL_POS_R, pos_g = LOCAL_POS_G, pos_b = LOCAL_POS_B;
MATRIX rev_mat_g = MGetRotAxis( REVOLVE_AXIS_G, REVOLVE_RATE_G );
MATRIX rev_mat_b = MGetRotAxis( REVOLVE_AXIS_B, REVOLVE_RATE_B );
while ( ProcessMessage( ) == 0 && CheckHitKey( KEY_INPUT_ESCAPE ) == 0 ) {
pos_g = VTransform( pos_g, rev_mat_g );
pos_b = VTransform( pos_b, rev_mat_b );
ClearDrawScreen( );
DrawFormatString( 0, 0, StrColor, "test" );
DrawSphere3D( pos_r, 40.0f, 32, GetColor( 255, 0, 0 ), GetColor( 255, 255, 255 ), TRUE );
DrawSphere3D( VAdd( pos_r, pos_g ), 20.0f, 32, GetColor( 0, 255, 0 ), GetColor( 255, 255, 255 ), TRUE );
DrawSphere3D( VAdd( VAdd( pos_r, pos_g ), pos_b ), 10.0f, 32, GetColor( 0, 0, 255 ), GetColor( 255, 255, 255 ), TRUE );
ScreenFlip( );
}
DxLib_End( );
return 0;
}