我被引导相信笛卡尔变换是我需要的,但我不确定。这是我的问题。
我有两个坐标系统,一个是全局x,y,另一个是局部i,j,k,它存在于x,y,z中
我知道全局内部本地系统的原点位置。我们将其标记为B.
我知道沿着轴i和j还有两个点C和E.意味着我的轴i可以由线BC定义,轴j由线BE定义。轴k将垂直于2D平面i,j
如何将一个系统的坐标转换为另一个系统。
例如说我知道D {x,y,z},我知道D存在于局部坐标系中,我如何得到D {i,j,k}?另外我怎么回到另一个方向?
如何: D {x,y,z}< - > d {I,J,K}
答案 0 :(得分:2)
仿射变换由3×1平移向量 B 和3×3旋转矩阵 E 定义。现在,您希望获取本地点public interface ArticleGetListService {
@FormUrlEncoded // Request will have "application/x-www-form-urlencoded" MIME type
@POST("/api/Article/ArticleGetList")
public void getArticleList(@Field("LanguageCode") String languageCode,
@Field("CategoryId") String categoryId,
@Field("Token") String token,
Callback<ArticleViewPojo> response); //POJO: The json retrieved from the server is added to this class.
}
并将其转换为全局点 RestAdapter restAdapter = new RestAdapter.Builder()
.setLogLevel(RestAdapter.LogLevel.FULL)
.setEndpoint(baseUrl)
.build();
ArticleGetListService articleGetListService = restAdapter.create(ArticleGetListService.class);
Callback<ArticleViewPojo> callback = new Callback<ArticleViewPojo>() {
@Override
public void success(ArticleViewPojo model, Response response) {
//use model which is data returned to you
}
@Override
public void failure(RetrofitError error) {
//handle error
}
};
//START REST CALL
articleGetListService.getArticleList(languageCode, categoryId, token, callback);
//above parameters are those written in service interface at 1
//Whole Url is baseUrl+ArticleGetListService in above example
。这是由
P=(i_P,j_P,k_P)
P'=(x_P,y_P,z_P)
旋转矩阵定义为单位向量 P' = B + E * P
,B=(B_x, B_y, B_z)
和i
的全局坐标,作为矩阵的三列。
j
要查找这些组件,请使用点k
, | i_x j_x k_x |
E = | i_y j_y k_y |
| i_z j_z k_z |
和B=(B_x, B_y, B_z)
取 C 和 B 之间的差异,并使其成为C=(C_x, C_y, C_z)
的单位向量。找到它们之间的距离为
E=(E_x, E_y, E_z)
,组件是:
i
取 E 和 B 之间的差异,并使其成为d_BC = sqrt( (B_x-C_x)^2 + (B_y-C_x)^2 + (B_z-C_z)^2 );
的单位向量。找到它们之间的距离为
i_x = (C_x-B_x)/d_BC;
i_y = (C_y-B_y)/d_BC;
i_z = (C_z-B_z)/d_BC;
,组件是:
j
使用矢量叉积d_BE = sqrt( (B_x-E_x)^2 + (B_y-E_x)^2 + (B_z-E_z)^2 );
找到j_x = (E_x-B_x)/d_BE;
j_y = (E_y-B_y)/d_BE;
j_z = (E_z-B_z)/d_BE;
的组件
k
现在完全转型
k = i × j
修改1
逆向转换是
k_x = i_y*j_z - i_z*j_y;
k_y = i_z*j_x - i_x*j_z;
k_z = i_x*j_y - i*y*j_x;
其中x_P = B_x + i_x*i_P + j_x*j_P + k_x*k_P;
y_P = B_y + i_y*i_P + j_y*j_P + k_y*k_P;
z_P = B_z + i_z*i_P + j_z*j_P + k_z*k_P;
是3×3矩阵 P = E'*(P'-B)
的转置。在组件形式中,这是
E'