永发信息网

总C语言编,求一个向量在任意向量上的投影

答案:1  悬赏:10  手机版
解决时间 2021-02-15 00:23
总C语言编,求一个向量在任意向量上的投影
最佳答案
//只写了二维向量的,如果多维向量,继续扩展就可以了
#include <stdio.h>
#include <math.h>

typedef struct vector{
float x;
float y;
}Vector;


float norm(Vector v){
return sqrt(v.x*v.x+v.y*v.y);
}

float dotmuti(Vector u, Vector v){
return u.x*v.y+u.y*v.x;
}

// a's project on b
Vector project(Vector a, Vector b){
Vector temp;
float c;
if (norm(b) > 0)
c = dotmuti(a,b) / norm(b) / norm(b);
else 
c = 0;
temp.x = b.x * c;
temp.y = b.y * c;
return temp;
}


int main()
{
Vector a;
Vector b;
// input vector a
printf("Pls input the first vector x and y\n");
printf("x:\n");
scanf("%f",&a.x);
printf("y:\n");
scanf("%f",&a.y);

//input vector b;
printf("Pls input the second vector x and y\n");
printf("x:\n");
scanf("%f",&b.x);
printf("y:\n");
scanf("%f",&b.y);

//output the vector
printf("Vector(%f, %f)'s projection on Vector(%f, %f) is: Vector(%f, %f).\n", a.x, a.y, b.x,b.y,project(a,b).x,project(a,b).y);
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
怎样去除衣服上的条码胶
汽车胎压,行车过程中升高怎么回事
鑫晨电脑维修地址在什么地方,想过去办事
问一个无穷大与无穷小的题根据定义证明:当x
有用大同话说相声的两兄弟叫什么
买了貔貅黄金去换个转运珠会不会不吉利
91点八除以十七的竖式
高中毕业几年了,之前英语学的好,现在想自学
已知函数y=f(x)是定义在R上的奇函数,且当x
华达电脑维修站地址有知道的么?有点事想过去
Hewasclosetosuccess.A.nearB.tightC.quickD.
秧田坝地址在什么地方,想过去办事
金刚菩提子项链为何要108颗
康鑫电脑维修地址好找么,我有些事要过去
翱翔众华电脑地址有知道的么?有点事想过去
推荐资讯
贴吧账号怎么找回
出口贴息是什么意思
哪个件可以赚钱,现提到qq
DOTA IMBA近卫防守战模式指令
实际上养老金最后的领取是不是按养老保险账户
银行的活期存款是什么意思?
女生看到喜欢的男孩心里会起色心!?
动画只有蒂法和蝗虫两部么
梨峪口村怎么去啊,我要去那办事
银魂最搞笑的几集?
2015年桐庐县城镇职工退休时医保补交每月是多
今天向喜欢的人告白,结果她说自己有男朋友了
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?