public void calc_lambda_for_Original(cls3D_pointModified screenPoint) { double x0 = polygonModified[0].originalX; double x1 = polygonModified[1].originalX; double x2 = polygonModified[2].originalX; double y0 = polygonModified[0].originalY; double y1 = polygonModified[1].originalY; double y2 = polygonModified[2].originalY; double y = screenPoint.originalX; double x = screenPoint.originalY; lambda0 = ((x1 - x2) * (y - y2) - (y1 - y2) * (x - x2)) / ((x1 - x2) * (y0 - y2) - (y1 - y2) * (x0 - x2)); lambda1 = ((x2 - x0) * (y - y0) - (y2 - y0) * (x - x0)) / ((x2 - x0) * (y1 - y0) - (y2 - y0) * (x1 - x0)); lambda2 = ((x0 - x1) * (y - y1) - (y0 - y1) * (x - x1)) / ((x0 - x1) * (y2 - y1) - (y0 - y1) * (x2 - x1)); }
public static List <cls3D_pointModified> loadTopsFromObjectFileForTransformation() { lines = File.ReadAllLines("Test.obj"); // считывание информации из файла for (int i = 0; i < lines.Length; i++) { words = lines[i].Split(' '); if (words[0] == "v") // ищем вершины { // CultureInfo.InvariantCulture позволяет читать десятичные числа как 0.хххх, а не 0,ххх x = double.Parse(words[1], CultureInfo.InvariantCulture); // считываем врешины y = double.Parse(words[2], CultureInfo.InvariantCulture); z = double.Parse(words[3], CultureInfo.InvariantCulture); cls3D_pointModified point = new cls3D_pointModified(x, y, z); // инициализируем точку по координатам pointsForTransformation.Add(point); // записываем в лист точку } } return(pointsForTransformation); // возвращаем массив точек }
// конструктор internal clsPolygonModified(cls3D_pointModified p1, cls3D_pointModified p2, cls3D_pointModified p3) { this.points[0] = p1; this.points[1] = p2; this.points[2] = p3; }