#include #include using namespace std; //構造体の宣言(こういう構造体があるよと教えるだけ) struct Vec2 { double x; double y; }; //struct Car //{ // string type; // float color[3];//r,g,bで3つ // int price; // string maker; //}; //あるベクトル(2次元)にスカラーをかける!そのかけたベクトルを返したい Vec2 mulVec(Vec2 v, double scalar) { Vec2 retV; retV.x = scalar * v.x; retV.y = scalar * v.y; return(retV); } //入力したベクトルとスカラーをかけたベクトルを表示しましょう //1.ベクトルvecのx、yを入力 //2.かけるスカラー量lengthを入力 //3.かけた結果を、retv に代入して表示する // ただし表示は自作関数 void PrintVec2(引数考えろ)を使うこと // Vec2 vv{3,2}; // PrintVec2(vv);の結果は (3, 2)になるよ void PrintVec2(Vec2 v) { cout << "(" << v.x << ", " << v.y << ")"; } void HelloWorldInf() { while (true) cout << "hello world" << endl; } double VecLength(Vec2 v) { return(sqrt(v.x * v.x + v.y * v.y)); } //Vec2型を受け取って、単位ベクトル化したベクトルを返す関数 //ルートは sqrt(値)で求められる (#include が必要) Vec2 NormalizeVec2(Vec2 v) { Vec2 retV; double length = VecLength(v); retV.x = v.x / length; retV.y = v.y / length; return(retV); } int main() { Vec2 v1, v2; v1.x = 1.0; //長さ1のベクトル v1.y = 1.0; v2 = mulVec(v1, 3.0); //v1を3倍したベクトルを返すよ cout << "v1(x, y) ="; PrintVec2(v1); cout << endl; //PrintVec2を使って、v1を表示 cout << "v2(x, y) ="; PrintVec2(v2); cout << endl; //PrintVec2を使って、v2表示 Vec2 nv2; nv2 = NormalizeVec2(v2); cout << VecLength(nv2) << endl; //cout << "v1(x, y) = "; //PrintVec2(v1); return 0; }