singlepost

Помогите с математической частью геометрической задачи << На главную или назад  

Задача по программированию на С++
Но я вас не прошу решать задачу, нме хотьбы понять что требуеться в задаче, и понять как это решать на математическом уровне (с математикой враги мы заклятые)

Вот задача:

"Дан файл координат вершин ломаной линии на плоскости. Переписать в файл G данные об отрезках этой ломаной: длине и направлении."

Как вообще математически это выглядит (ну как выяснить направление).
Я сам решу на программном уровне, но мне надо понять что требуется, и как формулы выглядят…

32 ответов в теме “Помогите с математической частью геометрической задачи”

  1. 32
    Андрей Щипцов ответил:

    если будет…))

  2. 31
    Максим Солодов ответил:

    Видимо спасибо будет.

  3. 30
    Леонид Максимов ответил:

    а что нам с этого будет?

  4. 29
    Ариночка Габбасова ответил:

    Помогите пожалуйста решить задачку на "С"(с вводом и выводом)
    _Дана матрица {аij}, i,j=1,n.
    _Найти максимальный номер столбца,содержащего максимальное кол-во положительных элементов.
    (В ЛИЧКУ)

  5. 28
    Леонид Максимов ответил:

    кабель из модема в аплинк вашего хаба/свича/роутера/etc. по кабелю из хаба/свича/роутера/etc в каждый из компьютеров. с адресами, думаю, разберетесь – в случае хаба или свича шлюзом на компьютерах прописываете адрес модема (в общем, скопируйте с уже работающего). если у вас роутер, то процедуру его настройки вы наверняка сможете прочитать в интернете или в руководстве.

  6. 27
    Victor Gamble ответил:

    Спасибо,Леонид. а какже его установить?мне неизвестна схема построения в конечный "продукт":)

  7. 26
    Леонид Максимов ответил:

    хаб – это самое простое из названных устройств. поверьте, свитч и, тем более, концентратор – гораздо более сложные устройства, чем хаб.

  8. 25
    Victor Gamble ответил:

    Под"хабом" вы имели ввиду свитч? или подойдет простейший концентратор?
    Для установки требуются особые знания? =)

  9. 24
    Леонид Максимов ответил:

    в принципе, можно и два модема. их надо будет настроить (возможно даже перепрошить), чтобы они использовали только часть частотного диапазона. со стороны провайдера также потребуется подобное вмешательство. следует учесть, что все это обойдется дороже, чем прокладка/покупка еще одной телефонной линии (исключений из этого правила представить себе не могу).

  10. 23
    Андрей Щипцов ответил:

    2 Victor, что – то мне подсказывает что вряд ли… сигналы будут перебиваться… вот обычный и ADSL можно, т.к. там сплиттером сигналы разделяются… а например два обычных или два ADSL, думаю, не подключишь, либо может сплиттеры какие – нить есть, не знаю…

  11. 22
    Валя Сарафонова ответил:

    Помогите пожалуйста, сижу сейчас на госах, надо привести пример web-документа с включенным в него кодом сценария на языке JavaS?1?ript, открывающим новое окно размером 500*600 с документом file1.htm

  12. 21
    Victor Gamble ответил:

    ребята,а возможно ли независимое подключение двух комп-ов к и-нету?
    Сккажем,подключить 2 модема на одну абонетскую линию

  13. 20
    Леонид Максимов ответил:

    следует заметить, что бывают USB-модемы. с ними первый вариант осуществить сложнее.

    хотя, судя по ип у пользователя, у него все-таки нормальный модем, настроенный в режиме роутера. таким образом, можно докупить хаб, в его аплинк вставить модем, подключить компьютеры и настроить второй.

    теоретически, можно обойтись без хаба, но это требует определенных познаний и изготовления шаманского трехконнекторного кабеля :)

  14. 19
    Андрей Щипцов ответил:

    Ты сначала определись как ты хочешь:
    1. Купить хаб, и законнектить к нему компы (тогда будет каждый комп отдельно работать)
    2. Пустить инет от компа 1 к компу 2(хаб покупать не надо, но чтобы был инет на 2-м компе, надо, чтобы комп 1 был включен)

  15. 18
    Леонид Максимов ответил:

    зачем требовать включения первого компьютера для работы интернета на втором? можно ведь перенастроить модем и взять банальнейший хаб (это если модем более-менее адекватный).

  16. 17
    Андрей Щипцов ответил:

    Тоже вариант, не спорю…

  17. 16
    Андрей Щипцов ответил:

    Виктор, кидаешь сеть к другому компу, на одном(где АДСЛ) ставишь ip 192.168.0.1 на другом 192.168.0.2 и шлюз 192.168.0.1.
    Дальше на первом компе в свойствах подключения, которое АДСЛ ставишь галочку "разрешить другим пользователям сети…. " если не сработает, то на второй машине пропиши ДНС, узнать его можно написав в командной строке ipconfig /all

  18. 15
    Victor Gamble ответил:

    Помогите,люди добрые,решить задачку!
    У меня комп подключет к инету черезэй-ди-эс-эл. Как подключить еще один комп к инету,находящийся в другой комнате?

  19. 14
    Леонид Максимов ответил:

    омг… может все-таки atan2(1,1)*4?

  20. 13
    Дмитрий Ерохин ответил:

    Приведу пример расчета расстояния и направления (азимута) между двумя точками (1,1) и (2,2):

    #include <iostream>
    #include <math.h>
    #define PI 3.14159265358979323846

    using namespace std;

    int main()
    {
    int x1,y1;
    int x2,y2;
    x1 = 1;y1 = 1;
    x2 = 2;y2 = 2;
    float dx = x2-x1;
    float dy = y2-y1;
    float d = sqrt(dx * dx + dy * dy);
    float x = 0;
    if (d > 0) x = atan2(dx,dy);
    if (x < 0)x = x + 2 * PI;
    x = x * 180 / PI;
    cout << "Distance: " << d << endl << "Azimuth: " << x << endl;
    system("pause");
    return 0;
    }

  21. 12
    Андрей Щипцов ответил:

    да хоть радианы, хоть градусы, они друг в друга переводятся, это не суть… вопрос в том что понимается под направлением…
    2 Автор: сначала: "Я сам решу на программном уровне, но мне надо понять что требуется, и как формулы выглядят…"
    а потом: "Вот как это реализовать (как выдернуть из файла так что бы это в числа перевести)…

    Какие идеи по ришению…."
    Ты бы уж сразу сказал напишите прогу…

  22. 11
    Леонид Максимов ответил:

    смотря где :)
    в математике обычно в радианах, от оси абцисс, против часовой.

    а еще угол можно считать в румбах.

  23. 10
    Дмитрий Ерохин ответил:

    Да, это угол в градусах, но отсчитывается он от оси ординат по часовой стрелке

  24. 9
    Леонид Максимов ответил:

    а разве направление – это не угол?

    угол отсчитывается против часовой стрелки от оси абсцисс.
    т.е. ЮЮЗ – это угол 11*atan(1)*4/8

  25. 8
    Артур Булакаев ответил:

    Есть не просто файл, а файл где сначала идёт число вершин ломаной, а потом её координаты, причём лучше схитрить, и записать их через пробел)) Ато отделять другие разделители не очень приятно…
    Для чтения из файла я предпочитаю fstream :

    #include <fstream>

    int main(){

    int col=0;
    int x[100];
    int y[100];

    ifstream in ("input.txt")

    in>>col;
    for(int i=0;i<cok;++i)
    in>>x[i]>>y[i]

    return 0;
    }

  26. 7
    Бейлак Алиев ответил:

    я кажеться понял.
    типа дан файл в котором написанны координаты
    3;4
    3;6

    Эта ломанная линия. получаеться две ломки (два отрезка)
    А содержимое может быть и больше
    3;5
    4;2
    4;6
    4;3

    Вот как это реализовать (как выдернуть из файла так что бы это в числа перевести)…

    Какие идеи по ришению….

  27. 6
    Андрей Щипцов ответил:

    да с длиной – то понятно… а раз уж направление вверх-вниз… то можно и угол измерить, относительно начала координат))

  28. 5
    Денис Боенсков ответил:

    Направление – это изменение координат от точки А к точке B, например есть координаты точек: A(10,15), B(5,20), C(8,3), значит получатся отрезки с направлениями AB(-5;5);BC(3;-17), т.е. это AB:(Bx-Ax;By-Ay)

  29. 4
    Александр Тимофеев ответил:

    вообще говоря если у дана линия то за направление можно принять переход от точки лежащей ближе к началу координат к дальней точке. это наиболее логично.а касаемо вычисления длины – здесь надо воспользоваться формулой из аналитической геометрии вычисления длины вектора пот координатам его концов на с++ что то типа

    struct TPoint
    {
    double x;
    double y;
    }

    double foo(TPoint p1, Tpoint p2)
    {
    return sqrt(sqr(p2.x-p1)+(p2.y-p1.y))
    }

    в этом духзе

  30. 3
    Артур Булакаев ответил:

    Ну, может направление просто вверх-вниз-лево-право?Тогда это делается несколькими условиями, нарисовав пример на бумаге их легко вывести. (От y-координат будет зависеть верх-низ, от x – лево-право)

    Как найти длинну отрезка, заданного координатами, я думаю – не проблема? (На всякий случай: L=sqrt(sqr(x2-x1)+sqr(y2-y1)), где x1 y1 – координаты начала отрезка, x2,y2 -конца, L- длинна, sqrt -кв. корень, sqr – возведение в квадрат)

  31. 2
    Бейлак Алиев ответил:

    Ну я тоже так думаю.. Но как это определить

  32. 1
    Андрей Щипцов ответил:

    у линии направление?… интересно… может просто от какой точке к какой…

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.