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

Рассчитать координаты точки - C++

Восстановить пароль Регистрация
 
Cend
2 / 2 / 0
Регистрация: 25.02.2013
Сообщений: 100
24.04.2013, 21:42     Рассчитать координаты точки #1
Даны координаты двух точек: 1 (X1,Y1) и 2 (X2,Y2), и расстоние до точки 3: A. Необходимо определить координаты точки 3 (X3,Y3) при условии что опущенная из нее линия к точке 2 образует перпендикуляр к линии, образованной точками 1 и 2.
Нужно рассчитать тремя способами и определить самый быстрый
Изображения
 
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tsin
 Аватар для Tsin
418 / 394 / 108
Регистрация: 30.12.2012
Сообщений: 1,084
Записей в блоге: 2
Завершенные тесты: 3
24.04.2013, 21:43     Рассчитать координаты точки #2
Cend, Какими способами и что не получается?
Cend
2 / 2 / 0
Регистрация: 25.02.2013
Сообщений: 100
24.04.2013, 22:01  [ТС]     Рассчитать координаты точки #3
Способы любые. Не получается сообразить хотябы один из способов.

Добавлено через 13 минут
Подскажите куда копать?
ViktorKozlov
133 / 125 / 2
Регистрация: 13.12.2012
Сообщений: 293
24.04.2013, 23:00     Рассчитать координаты точки #4
Один из способов:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <cmath>
using namespace std;
 
void main()
{
    const float x1=2;
    const float y1=5;
    const float x2=10;
    const float y2=2;
    const float A=6;
 
    float B=sqrt((x2-x1)*(x2-x1)+(y1-y2)*(y1-y2));  //расстояние между x1,y1 и x2,y2
    float alphaRad=acos((x2-x1)/B);    //угол, по которому B лежит к оси X
    float alphaGrad=alphaRad*180/3.14;  //переводим радианы в градусы
    float betaGrad=90-alphaGrad;    //угол, по которому прямая A лежит к оси X (вправо)
    float betaRad=betaGrad*3.14/180;  //переводим градусы в радианы
    float C=cos(betaRad)*A;
    float D=sin(betaRad)*A;
    float x3=x2+C;
    float y3=y2+D;
    cout<<x3<<endl<<y3<<endl;
}
Название: Снимок.JPG
Просмотров: 160

Размер: 13.8 Кб
Somebody
2770 / 1583 / 141
Регистрация: 03.12.2007
Сообщений: 4,139
Завершенные тесты: 1
25.04.2013, 20:30     Рассчитать координаты точки #5
C++
1
2
float dx = x2 - x1, dy = y2 - y1, c = A / sqrt(dx * dx + dy * dy);
float x3 = -dy * c, y3 = dx * c;
Вроде так можно...
Yandex
Объявления
25.04.2013, 20:30     Рассчитать координаты точки
Ответ Создать тему
Опции темы

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