Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.05.2013, 10:10   #1
Cynacyn
Новичок
Джуниор
 
Регистрация: 06.05.2013
Сообщений: 1
По умолчанию Соеденить N равноудаленных точек на суперэллипсе

Цитата:
13. Поищите в веб информацию о суперэллипсе, чтобы лучше представит его себе.
Напишите программу, которая рисует звездообразные шаблоны, соединяя точки, лежащие на суперэллипсе. Пусть параметры а, b, m, n и N вводятся как аргументы. Выберите N точек на суперэллипсе, определенном параметрами a, b, n и m. Пусть эти точки лежат на равном расстоянии друг от друга. Соедините каждую из этих N точек с одной или несколькими другими точками (если хотите, можете задать количество таких точек с помощью дополнительного аргумента или использовать число N-1, т.е. все другие точки).
Здравствуйте (:
Сейчас прохожу 12 главу Страуструпа "Принципы и Практика использования С++", начинается работа с графикой, используя FTLK. Выше приводится текст из упражнения 13.

Есть вектор содержащий координаты точек, по которым строится суперэллипс:

PHP код:
//------------------------------------------------------------------------------
 
int sgn(double d) {
        
    if (
0)
        return -
1;
    if (
== 0)
        return 
0;
    if (
0)
        return 
1;
    
// exception
    
error("sgn: something gone wrong\n");
}


//------------------------------------------------------------------------------

vector<Pointsuperellipse(double adouble bdouble mdouble ndouble precision 0.01int xCenter 200int yCenter 200) {
    if (
precision >= 1.00 || precision 0.001)
        
error ("use numbers from range [0.001 ; 1.00) for precision parametr\n");

    
vector<Pointpoints;
    
Point temp;
    
Point P;
    for (
double d = -1.01.00+= precision) {
        
double t d*M_PI;
        
int x pow((abs(cos(t))),2.0/m) * sgn(cos(t));
        
int y pow((abs(sin(t))),2.0/n) * sgn(sin(t));
        
Point(xCenteryCenter);
        if (
!= temp// ignore dublicates
            
points.push_back(P);
        
temp P;
    }

    return 
points;
}

//------------------------------------------------------------------------------ 
Я не особо силен в математике, мозги уже несколько дней набекрень с этим заданием. Помогите позязя.
Cynacyn вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задаnm n точек. Найти m=3,4... точек и построить на них m-угольник: количество точек , лежащих внутри и вне его мин. различается L.Rain Помощь студентам 0 11.12.2011 22:19
Даны координаты n точек на плоскости. Найти номера двух точек, расстояние между которыми наибольшее. Viwwna Паскаль, Turbo Pascal, PascalABC.NET 2 19.11.2011 06:33
дано два множества точек.Найти пересечение и разность этих множеств.Координаты точек X и Y вводить с клав Degster Паскаль, Turbo Pascal, PascalABC.NET 1 23.05.2011 16:35
дано два множества точек.Найти пересечение и разность этих множеств.Координаты точек X и Y вводить с клав Degster Паскаль, Turbo Pascal, PascalABC.NET 0 15.05.2011 18:32
определить радиус и центр окружности, на кот. лежит наиб.число точек заданного на плоскости мн-ва точек) kcю Помощь студентам 0 17.11.2009 19:50