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

Принадлежит ли начало треугольника координатам - C++

Восстановить пароль Регистрация
 
Ihor3
3 / 3 / 1
Регистрация: 14.11.2012
Сообщений: 235
15.12.2012, 22:43     Принадлежит ли начало треугольника координатам #1
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
#include<iostream.h>
#include<conio.h>
#include<math.h>
int main()
{
float x1,x2,x3;
float y1,y2,y3;
printf(" \n vvedit koordunatu \n", x1,x2,x3,y1,y2,y3);
scanf("%lf",&x1);
scanf("%lf",&x2);
scanf("%lf",&x3);
scanf("%lf",&y1);
scanf("%lf",&y2);
scanf("%lf",&y3);
if (x1==x2==x3 || y1==y2==y3)
printf("nevirni koordunatu");
int x=0, y=0;
int s1,s2,s3;
s1=(x2-x1)&&(y2-y1);
    printf("s1=%lf",s1);
s2=(x3-x2)&&(y3-y2);
printf("s2=%lf",&s2);
s3=(x3-x1)&&(y3-y1);
printf(" \n s3=%lf",s3);
if (s1<=x)&&(s2<=y2)
printf("\n popadaet");
else
if
 
getch();
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.12.2012, 22:43     Принадлежит ли начало треугольника координатам
Посмотрите здесь:

Принадлежит ли начало координат треугольнику с вершинами C++
C++ Принадлежит ли начало координат треугольнику с вершинами
C++ Принадлежит ли начало координат треугольнику
Определить вид треугольника по координатам вершин C++
Даны действительные числа x1 , x2 , x3 , y1 , y2 , y3 . Принадлежит ли начало координат треугольнику с вершинами (x1,y1), (x2,y2), (x3, y3)? C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
sovaz1997
CEO SOVAZ Corp.
 Аватар для sovaz1997
379 / 225 / 2
Регистрация: 17.12.2011
Сообщений: 816
Записей в блоге: 1
15.12.2012, 22:44     Принадлежит ли начало треугольника координатам #2
В чем вопрос???
Ihor3
3 / 3 / 1
Регистрация: 14.11.2012
Сообщений: 235
15.12.2012, 23:38  [ТС]     Принадлежит ли начало треугольника координатам #3
я незнаю что я делал ну конкретно я не знаю как задать треугольник. а потом как проверять входит ли начала координат в его плоскость или нет

Добавлено через 39 минут
обясниш как можно проще?
Gus
 Аватар для Gus
24 / 35 / 2
Регистрация: 17.02.2009
Сообщений: 364
15.12.2012, 23:45     Принадлежит ли начало треугольника координатам #4
допустим дана плоскость. ограниченная двумя координатами
[x1;y2][x2;y2] (прямоугольный параллелепипед дай бог если правильно написал)

и даны 3 координаты ребер треугольника, сравниваешь координаты. лежит ли какая либо из 3 координат треугольника на этой плоскости или нет.
Ihor3
3 / 3 / 1
Регистрация: 14.11.2012
Сообщений: 235
15.12.2012, 23:48  [ТС]     Принадлежит ли начало треугольника координатам #5
мне нужно чтобы начало координат принадлежало треугольныку
Gus
 Аватар для Gus
24 / 35 / 2
Регистрация: 17.02.2009
Сообщений: 364
15.12.2012, 23:52     Принадлежит ли начало треугольника координатам #6
Тогда поясните слово начало треугольника. (основание или что) , и какой это треугольник, прямоугольный или?

Добавлено через 1 минуту
Хотя фантазируйте, если хотите что бы какая та часть треугольника была вписана в плоскость, то... какие то координаты углов должны пренадлежать множеству плоскости)
Ihor3
3 / 3 / 1
Регистрация: 14.11.2012
Сообщений: 235
16.12.2012, 00:05  [ТС]     Принадлежит ли начало треугольника координатам #7
упс в меня ошибка в названеи темы начало координат(точка 0;0) входит ли она в плоскостьтреугольника вершины которого заданы координатами
Gus
 Аватар для Gus
24 / 35 / 2
Регистрация: 17.02.2009
Сообщений: 364
16.12.2012, 00:37     Принадлежит ли начало треугольника координатам #8
Как проверить принадлежит ли точка треугольнику?
Ihor3
3 / 3 / 1
Регистрация: 14.11.2012
Сообщений: 235
16.12.2012, 00:44  [ТС]     Принадлежит ли начало треугольника координатам #9
Gus, спасиба большое
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4925 / 2668 / 243
Регистрация: 29.11.2010
Сообщений: 7,422
16.12.2012, 01:56     Принадлежит ли начало треугольника координатам #10
Вот, как можно проще сделал:
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
#include <iostream>
#include <cmath>
 
struct Point
{
    int x;
    int y;
};
 
bool isTriangle(Point *);
bool pointInside(Point *, Point);
 
int main()
{
    Point point; // координаты точки
    Point vertex[3]; // координаты вершин
 
    std::cout << "Enter x coord of point: ";
    std::cin >> point.x;
    std::cout << "Enter y coord of point: ";
    std::cin >> point.y;
    for (int i=0; i < 3; i++)
    {
        std::cout << "Enter x coord of " << i + 1 << " vertex: ";
        std::cin >> vertex[i].x;
        std::cout << "Enter y coord of " << i + 1 << " vertex: ";
        std::cin >> vertex[i].y;
    }
 
    if (!isTriangle(vertex)) // если не треугольник
        std::cout << "Points don't form a triangle" << std::endl;
    else if (pointInside(vertex, point)) // если треугольник и точка внутри
        std::cout << "Point inside" << std::endl;
    else //если треугольник и точка снаружи
        std::cout << "Point outside" << std::endl;
 
    return 0;
}
 
bool isTriangle(Point *v)
{
    // рассчитываем стороны
    double A = sqrt(pow(v[0].x - v[1].x, 2) + pow(v[0].y - v[1].y, 2));
    double B = sqrt(pow(v[1].x - v[2].x, 2) + pow(v[1].y - v[2].y, 2));
    double C = sqrt(pow(v[2].x - v[0].x, 2) + pow(v[2].y - v[0].y, 2));
    // если одна из сторон больше либо равна двум другим возвращаем ложь
    if ((A + B <= C) || (A + C <= B) || (B + C <= A))
        return false;
    else
        return true;
}
 
bool pointInside(Point *v, Point p)
{
    int a = (v[0].x - p.x) * (v[1].y - v[0].y) - (v[1].x - v[0].x) * (v[0].y - p.y);
    int b = (v[1].x - p.x) * (v[2].y - v[1].y) - (v[2].x - v[1].x) * (v[1].y - p.y);
    int c = (v[2].x - p.x) * (v[0].y - v[2].y) - (v[0].x - v[2].x) * (v[2].y - p.y);
    return ((a >= 0 && b >= 0 && c >= 0) || (a <= 0 && b <= 0 && c <= 0));
}
Ihor3
3 / 3 / 1
Регистрация: 14.11.2012
Сообщений: 235
16.12.2012, 14:45  [ТС]     Принадлежит ли начало треугольника координатам #11
не знаю, point ето уже класы ,я думал ее как то проще можно зделать
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4925 / 2668 / 243
Регистрация: 29.11.2010
Сообщений: 7,422
17.12.2012, 19:37     Принадлежит ли начало треугольника координатам #12
Ihor3, Point это структура и это как раз облегчает использование. Можно воспринимать как объект, имеющий поля x и y, навроде реальной точки.
Ihor3
3 / 3 / 1
Регистрация: 14.11.2012
Сообщений: 235
24.12.2012, 01:10  [ТС]     Принадлежит ли начало треугольника координатам #13
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
#include<iostream.h>
#include<conio.h>
#include<math.h>
int main()
{
float x1,x2,x3;
float y1,y2,y3;
printf(" \n vvedit koordunatu \n", x1,x2,x3,y1,y2,y3);
scanf("%lf",&x1);
scanf("%lf",&x2);
scanf("%lf",&x3);
scanf("%lf",&y1);
scanf("%lf",&y2);
scanf("%lf",&y3);
int ptestx=0;
int ptesty=0;
 
  int a =  (P1.X - PTest.X) * (P2.Y - P1.Y) - (P2.X - P1.X) * (P1.Y - PTest.Y);
  int b = (P2.X - PTest.X) * (P3.Y - P2.Y) - (P3.X - P2.X) * (P2.Y - PTest.Y);
  int c = (P3.X - PTest.X) * (P1.Y - P3.Y) - (P1.X - P3.X) * (P3.Y - PTest.Y);
 
  if ((a >= 0 && b >= 0 && c >= 0) || (a <= 0 && b <= 0 && c <= 0))
    return TRUE;
  else
    return FALSE;
}
 
getch();
return 0;
}
папробовал переделать под С но не работает, с математитчной точки зрения я понял эту задачу но в програме не совсем не доделаете плз на С
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4925 / 2668 / 243
Регистрация: 29.11.2010
Сообщений: 7,422
24.12.2012, 02:58     Принадлежит ли начало треугольника координатам #14
Ihor3, специально для вас перевел на С свою программу (практически одни вводы/выводы заменил).

Принадлежит ли точка треугольнику (С)
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
#include <stdio.h>
#include <math.h>
 
typedef struct
{
    int x;
    int y;
} Point;
 
int isTriangle(Point *);
int pointInside(Point *, Point);
 
int main()
{
    Point point; /* координаты точки */
    Point vertex[3]; /* координаты вершин */
    int i;
 
    printf("Enter x coord of point: ");
    scanf("%d", &point.x);
    printf("Enter y coord of point: ");
    scanf("%d", &point.y);
    for (i=0; i < 3; i++)
    {
        printf("Enter x coord of %d vertex: ", i + 1);
        scanf("%d", &vertex[i].x);
        printf("Enter y coord of %d vertex: ", i + 1);
        scanf("%d", &vertex[i].y);
    }
 
    if (!isTriangle(vertex)) /* если не треугольник */
        printf("Points don't form a triangle\n");
    else if (pointInside(vertex, point)) /* если треугольник и точка внутри */
        printf("Point inside\n");
    else /* если треугольник и точка снаружи */
        printf("Point outside\n");
 
    return 0;
}
 
int isTriangle(Point *v)
{
    /* рассчитываем стороны */
    double A = sqrt(pow(v[0].x - v[1].x, 2) + pow(v[0].y - v[1].y, 2));
    double B = sqrt(pow(v[1].x - v[2].x, 2) + pow(v[1].y - v[2].y, 2));
    double C = sqrt(pow(v[2].x - v[0].x, 2) + pow(v[2].y - v[0].y, 2));
    /* если одна из сторон больше либо равна двум другим возвращаем ложь */
    if ((A + B <= C) || (A + C <= B) || (B + C <= A))
        return 0;
    else
        return 1;
}
 
int pointInside(Point *v, Point p)
{
    int a = (v[0].x - p.x) * (v[1].y - v[0].y) - (v[1].x - v[0].x) * (v[0].y - p.y);
    int b = (v[1].x - p.x) * (v[2].y - v[1].y) - (v[2].x - v[1].x) * (v[1].y - p.y);
    int c = (v[2].x - p.x) * (v[0].y - v[2].y) - (v[0].x - v[2].x) * (v[2].y - p.y);
    return ((a >= 0 && b >= 0 && c >= 0) || (a <= 0 && b <= 0 && c <= 0));
}
Ihor3
3 / 3 / 1
Регистрация: 14.11.2012
Сообщений: 235
24.12.2012, 11:33  [ТС]     Принадлежит ли начало треугольника координатам #15
ввожу все координаты точек, но не пишет входит или не входит
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4925 / 2668 / 243
Регистрация: 29.11.2010
Сообщений: 7,422
24.12.2012, 13:55     Принадлежит ли начало треугольника координатам #16
Ihor3, сначала введите координаты 0,0, потом координаты 3 вершин треугольника. Задача решает общий случай, принадлежит ли точка треугольнику, а ваш случай частный.
Ihor3
3 / 3 / 1
Регистрация: 14.11.2012
Сообщений: 235
25.12.2012, 02:15  [ТС]     Принадлежит ли начало треугольника координатам #17
я это понимал, вот когда я нажимаю ентер оно исчезает и не выводит окончательный результат
Изображения
 
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4925 / 2668 / 243
Регистрация: 29.11.2010
Сообщений: 7,422
25.12.2012, 02:53     Принадлежит ли начало треугольника координатам #18
Ihor3, добавьте паузу чтобы удерживать терминал. Например, так:
C
1
2
3
4
5
6
7
8
#include <stdlib.h>
...
int main(void)
{
    ...
    system("pause");
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.12.2012, 09:10     Принадлежит ли начало треугольника координатам
Еще ссылки по теме:

Вычисление площади треугольника по координатам x,y C++
Вычисление площади треугольника по координатам концов отрезков с ++ C++
C++ Составить функцию вычисления площади треугольника по координатам вершин

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ihor3
3 / 3 / 1
Регистрация: 14.11.2012
Сообщений: 235
25.12.2012, 09:10  [ТС]     Принадлежит ли начало треугольника координатам #19
вы гений
Yandex
Объявления
25.12.2012, 09:10     Принадлежит ли начало треугольника координатам
Ответ Создать тему
Опции темы

Текущее время: 12:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru