Форум программистов, компьютерный форум CyberForum.ru

Написать функцию булевского типа, проверяющую попадание точки с заданными координатами в треугольник с вершинами в точках (2,1) (3,0) (-1,0) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Кусочно-линейная аппроксимация http://www.cyberforum.ru/cpp-beginners/thread614820.html
Здравствуйте. Задача: есть два массива X и Y (с одинаковым количеством элементов - по 19). Необходимо установить зависимость между ними Y(X) так, чтобы можно было находить неизвестное приблизительное число Y при значениях X, не из массива. Решил использоваться кусочно-линейную аппроксимацию. Алгоритм (найти отрезок x1 < x < x2, вычислить вес для y1: w1 = (x2 - x) / (x2 - x1), вес для...
C++ Создать метод в fsScript Напишите пожалуйста рабочие примеры на С++ создания метода с использование fsScript. http://www.cyberforum.ru/cpp-beginners/thread614812.html
C++ Перенос кода
Подскажите пожалуйста в чём проблема? имею код: func.cpp #ifndef LAB4_H #define LAB4_H #include "stdafx.h" int borderLeft;
Массив C++
Помогите пожалуйста, объяснить код программы :int **arr = new int *; for(int i = 0; i < size; i++) arr = new int ;Вот этот.
C++ Дан вещественный массив A[4][4] и значение С, величина которого вводится пользователем. http://www.cyberforum.ru/cpp-beginners/thread614741.html
Дан вещественный массив A и значение С, величина которого вводится пользователем. Массив преобразовать по правилу: все отрицательные данные заменить на значение 0.0, а все положительные - на значение С.
C++ Сумма элементов произвольного одномерного массива Помогите составить программу, которая находит сумму элементов произвольного одномерного массива подробнее

Показать сообщение отдельно
asidorchenko
379 / 205 / 25
Регистрация: 09.04.2012
Сообщений: 635
29.06.2012, 14:07     Написать функцию булевского типа, проверяющую попадание точки с заданными координатами в треугольник с вершинами в точках (2,1) (3,0) (-1,0)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#include <stdio.h>
 
bool f(float x1,float y1,float x2,float y2,float x3,float y3,float x4,float y4)
{
float a1,b1,c1, a2,b2,c2, a3,b3,c3;
float r1,r2,r3;
// 1.x1,y1, x2,y2
a1 = y2 - y1;
b1 = x1 - x2;
c1 = x2*y1 - x1*y2;
 
r1 = a1*x3 + b1*y3 + c1;
r2 = a1*x4 + b1*y4 + c1;
r3 = r1*r2;
 
if (r3 < 0)
return false;
 
// 2.x2,y2, x3,y3
a2 = y3 - y2;
b2 = x2 - x3;
c2 = x3*y2 - x2*y3;
 
r1 = a2*x1 + b2*y1 + c2;
r2 = a2*x4 + b2*y4 + c2;
r3 = r1*r2;
 
if (r3 < 0)
return false;
 
 
// 3.x1,y1, x3,y3
 
a3 = y3 - y1;
b3 = x1 - x3;
c3 = x3*y1 - x1*y3;
 
r1 = a3*x2 + b3*y2 + c3;
r2 = a3*x4 + b3*y4 + c3;
r3 = r1*r2;
 
if (r3 < 0)
return false;
else
return true;
 
}
 
int main()
{
int r;
float x1,y1,x2,y2,x3,y3; // точки треугольника
float x4,y4; // проверяемая точка
 
x1 = 2.0;
y1 = 1.0;
 
x2 = 3.0;
y2 = 0.0;
 
x3 = -1.0;
y3 = 0.0;
 
x4 = 0.9;
y4 = 0.5;
 
r = f(x1,y1,x2,y2,x3,y3,x4,y4);
 
printf("%d\n", r);
 
return 0;
}
 
Текущее время: 11:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru