⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 geometry.h

📁 RoboCup 3D 仿真组清华大学2005的源代码
💻 H
字号:
/*************************************************************************** *   Copyright (C) 2005 by Rujia Liu                                       * *   rujialiu@hotmail.com                                                  * *                                                                         * *   This program is free software; you can redistribute it and/or modify  * *   it under the terms of the GNU General Public License as published by  * *   the Free Software Foundation; either version 2 of the License, or     * *   (at your option) any later version.                                   * *                                                                         * *   This program is distributed in the hope that it will be useful,       * *   but WITHOUT ANY WARRANTY; without even the implied warranty of        * *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         * *   GNU General Public License for more details.                          * *                                                                         * *   You should have received a copy of the GNU General Public License     * *   along with this program; if not, write to the                         * *   Free Software Foundation, Inc.,                                       * *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             * ***************************************************************************/#ifndef GEOMETRY_H#define GEOMETRY_H#include <zeitgeist/leaf.h>using namespace salt;namespace Geometry{    typedef Vector2f Point;    typedef Point Triangle[3];    // ray, from point o towards direction dir(unit vector)    struct Ray    {        Point o;        Point dir;    };        // polar position    struct VisionSense    {      float distance;      float theta;      float phi;      VisionSense() : distance(0), theta(0), phi(0){};    };           const float eps = 1e-5;    float rand_float(float min, float max);    float sqr(float x);        float cross(Point p0, Point p1, Point p2);    float dot(Point p0, Point p1, Point p2);    float dis(Point p1, Point p2);        Point MakePoint(Vector3f v);    Ray MakeRay(Point origin, Point direction);        float DistanceToLine(Point x, Point p1, Point p2, Point& p);    float GetDistOnRay(Ray r, Point p);    Point GetPointOnRay(Point p0, Point p1, float dist);    Vector3f GetRelativePosition(const VisionSense& vision);    float GetProjectionDistance(Point p0, Point p1, Point p2);    Point GetProjectionPoint(Point p0, Point p1, Point p);    Point VectorCombine(Point p, float t, float rr);};#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -