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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 22, средняя оценка - 4.91
JuliaDulceFlor
0 / 0 / 0
Регистрация: 28.09.2010
Сообщений: 36
#1

Найти координаты основания высоты. - C++

28.09.2010, 16:45. Просмотров 3000. Ответов 2
Метки нет (Все метки)

Задача: Треугольник задается координатами своих вершин на плоскости: А(x1, y1), B(x2, y2), C(x3, y3). Найти длину и координаты основание высоты, опущенной из вершины А на сторону ВС.

Саму высоту нашла, но координаты не могу.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.09.2010, 16:45
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти координаты основания высоты. (C++):

В треугольнике найти длину и координаты основания высоты, опущенной из вершины А на сторону ВС - C++
Помогите разобраться. Даже так решить, на бумаге, не могу: В треугольнике , заданном на плоскости координатами вершин , найти длину...

Найти координаты точки пересечения высоты AH и высоты BG треугольника - C++
Треугольник задан координатами своих вершин A(x1;y1), B(x2;y2), C(x3;y3). Найти координаты точки пересечения высоты AH и высоты BG....

Даны основания и высоты 2-х равнобедренных трапеций. Найти сумму их периметров. - C++
Даны основания и высоты 2-х равнобедренных трапеций. Найти сумму их периметров. (Определить ф-цию для расчета периметра равнобедренной...

Найти максимальное значение радиуса шара r и соответствующие значения радиуса основания r3 и высоты h шарового сектора - C++
Здравствуйте))))) помогите пожалуйста!!!! надежда только на вас! не могу сделать математическую часть курсовой((( Найти максимальное...

Даны основания и высоты двух равнобедренных трапеций - C++
Даны основания и высоты двух равнобедренных трапеций. Найти сумму их периметров (Определить функцию для расчета периметров равнобедренной...

Вычислить для цилиндра по введенному значению высоты и радиуса основания величину с заданным номером - C++
Надо этот код сделать функциями , как я понял но не объяснили какими именно . #include "stdafx.h" #include <iostream> using...

2
TheMachinist
244 / 176 / 15
Регистрация: 14.06.2010
Сообщений: 422
28.09.2010, 17:37 #2
y = By - (Ay / 2)
x = Ax + (Cx-Ax) / 2

это если Dy > Ay и Cx > Ax
0
Mr.X
Эксперт С++
3051 / 1696 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
29.09.2010, 19:18 #3
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
///////////////////////////////////////////////////////////////////////////////
//Треугольник задается координатами своих вершин на плоскости: 
//А(x1, y1), B(x2, y2), C(x3, y3). Найти длину и координаты основания высоты, 
//опущенной из вершины А на сторону ВС.
///////////////////////////////////////////////////////////////////////////////
#include <complex>
#include <iostream>
///////////////////////////////////////////////////////////////////////////////
typedef double                 T_coord;
typedef std::complex<T_coord>  T_point;
///////////////////////////////////////////////////////////////////////////////
bool  vectors_are_equally_directed(const T_point& V1, const T_point& V2)
{    
    if(abs(V1) * abs(V2) == 0) return true;    
    return  arg(V1 / V2) == 0;     
}
///////////////////////////////////////////////////////////////////////////////
void get_altitude_AK
    (
        T_point   A, 
        T_point   B, 
        T_point   C, 
        T_point&  K, 
        T_coord&  altitude_len
    )
{
    //Так как основание K высоты AK лежит на прямой BC, то точку K можно 
    //представить в виде:
    //K = B + a * BC,                                                (1)
    //где a - действительное.
    //Тогда AK = K - A = B + a * BC - A = AB + a * BC.
    //Так как векторы AK и BC перпендикулярны, а при делении комплексных чисел
    //их аргументы (углы) вычитаются, то частное AK/BC или (AB + a * BC)/BC 
    //или (AB / BC + a) будет иметь аргумент, равный по модулю 90 градусов, т.е.
    //будет числом чисто мнимым. Следовательно (AB / BC).real() + a = 0, откуда
    // a = -(AB / BC).real().    
    //Тогда из (1) получим:    
    T_point  AB = B - A;
    T_point  BC = C - B;
    K = B - (AB/BC).real() * BC;
    T_point  AK = K - A;
    altitude_len = abs(AK);
}
///////////////////////////////////////////////////////////////////////////////
int main()
{
    std::locale::global(std::locale(""));
    std::cout << "Введите координаты вершин треугольника: "
              << std::endl; 
 
    T_coord  Ax;
    std::cout << "Ax = ";
    std::cin >> Ax;
    T_coord  Ay;
    std::cout << "Ay = ";
    std::cin >> Ay;
    T_point A(Ax, Ay);
 
    T_point B;    
    do
    {
        T_coord  Bx;
        std::cout << std::endl
                  << "Bx = ";
        std::cin >> Bx;
        T_coord  By;
        std::cout << "By = ";
        std::cin >> By;
        B = T_point(Bx, By);        
    }while(B == A);    
 
    T_point  C;
    T_point  AB;
    T_point  AC;
    do
    {
        T_coord  Cx;
        std::cout << std::endl
                  << "Cx = ";
        std::cin >> Cx;
        T_coord  Cy;
        std::cout << "Cy = ";
        std::cin >> Cy;
        C = T_point(Cx, Cy);
 
        AB = B - A;
        AC = C - A;        
    }while(vectors_are_equally_directed(AB, AC)//Векторы AB и ± AC 
           || vectors_are_equally_directed(AB, -AC));//напривлены одинаково.
    T_point  K;
    T_coord  altitude_len = 0;
    get_altitude_AK(A, B, C, K, altitude_len);
    std::cout << "Высота AK треугольника имеет длину "
              << altitude_len
              << ", а точка K имееет координаты "
              << K
              << "."
              << std::endl;              
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.09.2010, 19:18
Привет! Вот еще темы с ответами:

Заданы координаты точки подвеса математического маятника A(xa, ya, za) и координаты одной из точек его наивысшего подъема B(xb, yb, zb). Найти координ - C++
помогите написать программу на с++ Добавлено через 37 секунд вот задача:Заданы координаты точки подвеса математического маятника...

Какое количество топлива необходимо для спуска с высоты A до высоты B - C++
Имя входного файла | input.txt ...

Найти объем V, массу m, и площадь S основания слитка - C++
На практике в универе дали задачу, помогите с решением для C++ Известны плотность p, высота h, и радиус основания R циллиндрического...

написать алгоритм, вычисляющий, какое количество единиц топлива необходимо для спуска с высоты A до высоты B - C++
Имя входного файла input.txt ...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.