Форум программистов, компьютерный форум, киберфорум
Наши страницы

Пересечение отрезка и треугольника - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Решение нелинейного уравнения методом последовательных итераций http://www.cyberforum.ru/cpp-beginners/thread1771514.html
Здравствуйте, помогите пожалуйста написать программу для решения нелинейного уравнения методом последовательных итераций c погрешностью 0.001 f(x)=tg(2/x)-(-2x+5) сдавать надо=(
C++ Дана матрица размером 8х12. Удалить из нее столбцы (один или не-сколько) в которых элементы образуют до по Дана матрица размером 8х12. Удалить из нее столбцы (один или не-сколько) в которых элементы образуют до половины убывающую последовательность, а потом возрастающую. #ifndef serv_4 #define serv_4... http://www.cyberforum.ru/cpp-beginners/thread1771441.html
Код работает не правильно C++
#include <stdio.h> void mystrcpy (char *d, char *s) { while (*s != '\0') { *d = *s;
C++ Шаблонный класс матриц фиксированного размера
Доброе утро. Помогите создать класс для следующего обьекта: Matrix<2, 5> m1; матрица 2*5 из нулей. Спасибо! Добавлено через 37 минут сделал: template<const unsigned int x, const unsigned int...
C++ Работа с файлами http://www.cyberforum.ru/cpp-beginners/thread1771419.html
int main() { int mass; srand(time(NULL)); for (int i = 0; i < 100; i++) mass = rand() % 1000; FILE *file; file = fopen("name.txt", "w"); for (int i = 0; i < 100; i++) putw(mass,...
C++ Перегрузка оператора << Добрый пень! подскажите как написать код для реалилизации следующего требования: SpecialPrint << "text" << 'a' << 1; напечатает: text, a, 1 подробнее

Показать сообщение отдельно
_liv_
229 / 229 / 86
Регистрация: 07.10.2015
Сообщений: 639
Завершенные тесты: 1
27.06.2016, 13:24
Андей, вспоминаем математику
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
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
 
typedef struct _point 
{
    double x;
    double y;
}point;
 
// вычисляет положение точки D относительно AB
// важен знак
int g(point a, point b, point d) 
{
    double r = (d.x - a.x) * (b.y - a.y) - (d.y - a.y) * (b.x - a.x);
    if (fabs(r) < 0.000001)
        return 0;
    else if (r < 0)
        return -1;
    else return 1;
}
 
// возвращает 1/0, если отрезок [x,y] пересекает/не пересекает треугольник abc
bool f(point a, point b, point c, point x, point y) 
{
    // r1 == 3 -> треугольник по одну сторону от отрезка
    bool r1 = (3 != abs(g(x,y,a) + g(x,y,b) + g(x,y,c)));
    // r2 == 2 -> точки x,y по одну сторону от стороны ab
    bool r2 = (2 != abs(g(a,b,x) + g(a,b,y)));
    // r3 == 2 -> точки x,y по одну сторону от стороны bc
    bool r3 = (2 != abs(g(b,c,x) + g(b,c,y)));
    // r4 == 2 -> точки x,y по одну сторону от стороны ca
    bool r4 = (2 != abs(g(c,a,x) + g(c,a,y)));
    // r2 == r3 == r4 == 2 -> точки x,y по одну сторону от треугольника abс
 
    return (r1 && (r2 || r3 || r4));
}
 
int main() 
{
    point   a = {1,1};
    point   b = {5,5};
    point   c = {6,0};
    
    point   x = {1, 5};
    point   y = {2, 4};
   
    printf ("%d\n",f(a,b,c,x,y));
   
    return 0;
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru