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

Уравнение прямой по двум точкам - C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 106, средняя оценка - 4.70
Andrew_qb
133 / 133 / 5
Регистрация: 04.06.2011
Сообщений: 551
07.05.2012, 01:51     Уравнение прямой по двум точкам #1
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
using namespace std;
void main()
{
    setlocale (LC_ALL, "rus");
    int x1, y1, x2, y2, x, y, line;
    cout << "Введите точки X1 Y1 и X2 Y2 : ";
        cin >> x1 >> y1 >> x2 >> y2;
    line = (y1 - y2) * x + (x2 - x1) * y + (x1 * y2 - x2 * y1);
        cout << line;
 
    system ("pause");
}
Знаю не правильно переменные x и y не должны быть типа int, но типа char они просто плюсуют x 120 а y 121, string ошибка не соответствия типов. И не могу понять как?
Миниатюры
Уравнение прямой по двум точкам  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.05.2012, 01:51     Уравнение прямой по двум точкам
Посмотрите здесь:

C++ Нахождение 3ей точки по первым двум лежащей на одной прямой с ними
Окружность по 3-ём точкам C++
Построить прямоугольник по двум заданным точкам C++
построение графика по заданным точкам C++
C++ Дано уравнение ax2+bx+c=0. Решить уравнение, результат вывести на экран.
Написать программу, составляющую и печатающую уравнение прямой, проходящей через точку и пересекающей две прямые C++
C++ перемещать квадрат по точкам
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
programina
 Аватар для programina
1912 / 597 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
07.05.2012, 07:56     Уравнение прямой по двум точкам #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
 
int main()
{
    float x1        = 5.0;
    float y1        = 2.0;
    float x2        = 6.0;
    float y2        = 3.0;
    float line      = 0.0;
 
    line = sqrt( pow((x2 - x1), 2) + pow((y2 - y1), 2) ); // вычисление гипотенузы
 
    printf( "Dlina linii ravna %f \n\n", line ); // длина линии равна line
 
    system("pause");
    return 0;
}
Andrew_qb
133 / 133 / 5
Регистрация: 04.06.2011
Сообщений: 551
07.05.2012, 08:51  [ТС]     Уравнение прямой по двум точкам #3
что это такое 1.4 ? какая гипотенуза ? у меня прямая, а не угол, уравнение прямой же))
я же написал какой ответ должен получиться.
Ну что бы совсем не пропадать ответу как сделать сокращение из 1.41421 в 1.4?
Миниатюры
Уравнение прямой по двум точкам  
programina
 Аватар для programina
1912 / 597 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
07.05.2012, 09:33     Уравнение прямой по двум точкам #4
А вы не знаете, что такое гипотенуза?
Миниатюры
Уравнение прямой по двум точкам  
programina
 Аватар для programina
1912 / 597 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
07.05.2012, 09:44     Уравнение прямой по двум точкам #5
Сколько у вас иксов и игреков: x, x1, x2, y, y1, y2 ? Ведь для точки на плоскости нужно только один x и только один y
-=ЮрА=-
Заблокирован
Автор FAQ
07.05.2012, 09:56     Уравнение прямой по двум точкам #6
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Уравнение прямой с угловым коэффициентом
http://www.cyberforum.ru/cgi-bin/latex.cgi?y = k*x + b
Есть две точки с координатами (x1;y1) и (x2;y2) обе точки(раз лежат на одной прямой) удовлетворяют одному и тому же уравнению, т.е. можем записать систему
http://www.cyberforum.ru/cgi-bin/latex.cgi?\left\{\begin{matrix} <br />
\\ y1 = k*x1 + b <br />
\\ y2 = k*x2 + b <br />
\end{matrix}\right.
Решая систему получим выражения для углового коэффициента k и свободного члена b
http://www.cyberforum.ru/cgi-bin/latex.cgi?k = \frac{y2 - y1}{x2 - x1}
http://www.cyberforum.ru/cgi-bin/latex.cgi?b = \frac{x2*y1 - y2*x1}{x2 - x1}
Суть данной задачи заключается в отыскании k и b
-=ЮрА=-
Заблокирован
Автор FAQ
07.05.2012, 10:02     Уравнение прямой по двум точкам #7
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Ниже простецкий код на плюсах для решения данной задачи
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
using namespace std;
 
int main()
{
    double x1, y1, x2, y2;
    cout<<"x1 = ";cin>>x1;
    cout<<"y1 = ";cin>>y1;
    cout<<"x2 = ";cin>>x2;
    cout<<"y2 = ";cin>>y2;
 
    double k = (y2 - y1)/(x2 - x1);
    double b = (x2*y1 - x1*y2)/(x2 - x1);
 
    cout<<"Line equation : "<<k<<"*x + "<<b<<endl;
    system("pause");
    return 0;
}
Миниатюры
Уравнение прямой по двум точкам  
programina
 Аватар для programina
1912 / 597 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
07.05.2012, 10:06     Уравнение прямой по двум точкам #8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
    float x1        = 5.0;
    float y1        = 2.0;
    float x2        = 6.0;
    float y2        = 3.0;
    float x, y;
 
    //x  = (x2*y1 - x1*y2 - (x2 - x1)*y)/(y1 - y2);
 
    for ( float y = -5.0; y < 5.0; y+=1.0 )
    {
        x = (x2*y1 - x1*y2 - (x2 - x1)*y)/(y1 - y2);
        printf( "x = %f\ty = %f\n", x, y );
    }
 
    system("pause");
    return 0;
}
-=ЮрА=-
Заблокирован
Автор FAQ
07.05.2012, 10:16     Уравнение прямой по двум точкам #9
Andrew_qb, твой скриншот - опять же преобразованное выражение прямой y = k*x + b
Смотрим
http://www.cyberforum.ru/cgi-bin/latex.cgi?y = \frac{(y2 - y1)}{(x2 - x1)}*x + \frac{(x2*y1 - x1*y2)}{(x2 - x1)}
Домножим обе части равенства на x2 - x1, получим
http://www.cyberforum.ru/cgi-bin/latex.cgi?y*(x2 - x1) = (y2 - y1)*x + (x2*y1 - x1*y2)
Сгруппировав всё в одну часть получим
http://www.cyberforum.ru/cgi-bin/latex.cgi?y*(x2 - x1) - (y2 - y1)*x - (x2*y1 - x1*y2) = 0
Внеся знаки минус под скобки получаем выражение на картинке
http://www.cyberforum.ru/cgi-bin/latex.cgi?y*(x2 - x1) + (y1 - y2)*x + (x1*y2 - x2*y1) = 0

Ещё раз подчёркиваю задачи данного плана с наименьшими трудозатратами решаются так как показано в посте 7, на крайняк можно записать уравнение прямой в отрезках или в общем виде, в любом случае эти формулы вытекают одна из одной и в большинстве технической литературы уравнение прямой подаётся как уравнение прямой с угловым коэффициентом.
Andrew_qb
133 / 133 / 5
Регистрация: 04.06.2011
Сообщений: 551
08.05.2012, 12:40  [ТС]     Уравнение прямой по двум точкам #10
Сколько у вас иксов и игреков: x, x1, x2, y, y1, y2 ? Ведь для точки на плоскости нужно только один x и только один y
У тебя иксов и игреков не меньше чем у меня, да и как уже показал -=ЮрА=- есть две точки А и В со своими координатами x и y))
Да и если честно, я эту математику уже не помню, помню лишь что гипотенуза делит угол по палам, а твой рисунок мне говорит только то что соединены две точки
Так что извеняй если что))
programina
08.05.2012, 12:48
  #11

Не по теме:

Цитата Сообщение от Andrew_qb Посмотреть сообщение
У тебя иксов и игреков не меньше чем у меня
Нет, я просто не поняла сначала, я думала, что там где x должно быть x1 или x2

Nick Alte
08.05.2012, 12:51
  #12

Не по теме:

Цитата Сообщение от Andrew_qb Посмотреть сообщение
помню лишь что гипотенуза делит угол по палам
пополам - это биссектриса

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.05.2012, 13:00     Уравнение прямой по двум точкам
Еще ссылки по теме:

C++ Написать программу, которая решает уравнение с одним неизвестным и выводит в консоль значение неизвестного. Уравнение посимвольно вводится с клавиатур
C++ 18. Написать программу, которая решает уравнение с одним неизвестным и выводит в консоль значение неизвестного. Уравнение посимвольно вводится с клави
C++ Две точки на плоскости даны координатами. Выдать на экран терминала уравнение прямой линии
Создать производные классы линейное уравнение и квадратное уравнение, в которых данная функция переопределена C++
Найти интеграл по точкам C++

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

Или воспользуйтесь поиском по форуму:
Andrew_qb
133 / 133 / 5
Регистрация: 04.06.2011
Сообщений: 551
08.05.2012, 13:00  [ТС]     Уравнение прямой по двум точкам #13

Не по теме:

Ооо понятно совсем не помню))



Добавлено через 5 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using namespace std;
 
void main()
{
    setlocale (LC_ALL, "rus");
 
    double x1, y1, x2, y2, k, b;
    cout << "Введите x1 y1 и x2 y2 : ";
    cin >> x1 >> y1 >> x2 >> y2;
 
    k = (y2 - y1)/(x2 - x1);
    b = (x2*y1 - x1*y2)/(x2 - x1);
 
        if (k == 1)
            cout << "Вывод : y=" << "x" << showpos << b << "\n";
        else
                cout<<"Вывод : y="<< k <<"x"<< showpos << b <<endl;
 
    system("pause");
}
В общем вот моя готовая программа))
Yandex
Объявления
08.05.2012, 13:00     Уравнение прямой по двум точкам
Ответ Создать тему
Опции темы

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