Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Внутренние точки отрезка.

9.0K
21 апреля 2006 года
f14tc
25 / / 06.11.2005
Привет всем!

Задача такая. Есть четыре точки в трехмерном пространстве.
Они расположены на одной прямой.
То есть заданы они массивом
dPoint3d pts[4];
структуры
struct dPoint3d
{
double x;
double y;
double z;
};

Надо получить на выходе функции две внутренние точки.
То есть крайние точки отсеять.

В общем, оно конечно решаемо,
но который день сижу туплю...
Все время получаются какие-то монстровидные функции.

А хотелось бы решить ее просто и красиво.

Может кого заинтересует?
ПОделитесь опытом, господа программеры! :)
324
21 апреля 2006 года
AndreySar
532 / / 01.08.2004
Цитата:
Originally posted by f14tc
Привет всем!

Задача такая. Есть четыре точки в трехмерном пространстве.
Они расположены на одной прямой.
То есть заданы они массивом
dPoint3d pts[4];
структуры
struct dPoint3d
{
double x;
double y;
double z;
};

Надо получить на выходе функции две внутренние точки.
То есть крайние точки отсеять.

В общем, оно конечно решаемо,
но который день сижу туплю...
Все время получаются какие-то монстровидные функции.

А хотелось бы решить ее просто и красиво.

Может кого заинтересует?
ПОделитесь опытом, господа программеры! :)



что то типа этого:

 
Код:
dPoint3d pts[4];
for(int i = 0; i < 4; i++)
    for(int y = 0; y < 3; y++)
    if(pts[y].x < pts[y + 1].x)
    {
        dPoint3d tmp = pts[y];
        pts[y] = pts[y + 1];
        pts[y + 1] = tmp;
    }


в итоге [1] и [2] точки являются центральными.
9.0K
21 апреля 2006 года
f14tc
25 / / 06.11.2005
Цитата:
Originally posted by AndreySar
что то типа этого:
 
Код:
dPoint3d pts[4];
for(int i = 0; i < 4; i++)
    for(int y = 0; y < 3; y++)
    if(pts[y].x < pts[y + 1].x)
    {
        dPoint3d tmp = pts[y];
        pts[y] = pts[y + 1];
        pts[y + 1] = tmp;
    }


в итоге [1] и [2] точки являются центральными.



Спасибо!
Работает! :)
Только для того чтобы отработали все возможные отрезки, надо сделать еще сортировку по Y и Z.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог