github.com/archlabjp/eeslism-go@v0.0.0-20231109122333-4bb7bfcdf292/eeslism/EOP.go (about) 1 //This file is part of EESLISM. 2 // 3 //Foobar is free software : you can redistribute itand /or modify 4 //it under the terms of the GNU General Public License as published by 5 //the Free Software Foundation, either version 3 of the License, or 6 //(at your option) any later version. 7 // 8 //Foobar is distributed in the hope that it will be useful, 9 //but WITHOUT ANY WARRANTY; without even the implied warranty of 10 //MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the 11 //GNU General Public License for more details. 12 // 13 //You should have received a copy of the GNU General Public License 14 //along with Foobar.If not, see < https://www.gnu.org/licenses/>. 15 16 /* 17 18 壁面の法線ベクトルを求める 19 FILE=EOP.c 20 Create Date 1999.6.15 21 22 */ 23 24 package eeslism 25 26 import "math" 27 28 func EOP(u int, p []*P_MENN) { 29 const M_rad = math.Pi / 180 30 for j := 0; j < u; j++ { 31 p[j].e.Z = math.Cos(p[j].wb * M_rad) 32 p[j].e.Y = -math.Sin(p[j].wb*M_rad) * math.Cos(p[j].wa*M_rad) 33 p[j].e.X = -math.Sin(p[j].wb*M_rad) * math.Sin(p[j].wa*M_rad) 34 CAT(&p[j].e.Z, &p[j].e.Y, &p[j].e.X) 35 } 36 }