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

Растеризация кривой второго порядка - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Заполнить массив случайными числами по возрастанию и убыванию http://www.cyberforum.ru/cpp-beginners/thread168272.html
Случайными числами 0..700 по возрастанию и убыванию
C++ Написать программу, которая запрашивает у пользователя номер дня недели, затем выводит название дня недели Написать программу, которая запрашивает у пользователя номер дня недели, затем выводит название дня недели или сообщение об ошибке, если введены неправильные данные. http://www.cyberforum.ru/cpp-beginners/thread168261.html
Факториал C++
Помогите написать программу: Составить функцию, которая вычисляет сумму К слагаемых. В вызывающей функции main() организовать контроль ввода положительного целого K, большего 0. Через do... while или while или for -------------- В знаменателе 2n-1, а что делать со степенью x и меняющимися знаками??
C++ Определение колличества членов ak псоледовательности
Помогите пожалуйста подправить программу. Нужно Определить количество членов ak последовательности а1,....,аn, являющихся нечетными числами. #include <iostream> #include <conio.h> int S=0; int n; int main() { std::cout <<"vvedite n"; std::cin >>n; int a;
C++ Описать класс "Матрица" http://www.cyberforum.ru/cpp-beginners/thread168246.html
я как бэ в поиске нашел но мне бы хотелось узнать обязательно ли матрица должна быть динамической и можно написать метод для ввода и вывода матрицы? а то я пытался сделать но чего-то работает неверно...
C++ Перемножение двух чисел Никак не могу понять в чем ошибка в таком простом коде #pragma argsused #include <iostream.h> #include <conio.h> #include <math.h> #include <stdio.h> #include <clx.h> #pragma hdrstop подробнее

Показать сообщение отдельно
Nick Alte
Эксперт С++
1608 / 1000 / 118
Регистрация: 27.09.2009
Сообщений: 1,927
Завершенные тесты: 1
24.09.2010, 17:33     Растеризация кривой второго порядка
Для начала надо было проверить мои выкладки - я вполне мог по пути что-то напутать.
Считать расстояние между точками надо правильно:
D ({x1; y1} - {x2; y2}) = sqrt((x2-x1)^2 + (y2-y1)^2)
Ну и написать функцию более внятно, примерно так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
double distance(double a, double b, double c, double x, double y)
{
    const double t1=( 2*a*x + sqrt(4*a*a*x*x - 4*a*(y-b*x-c)) )/(4*a);
    const double t2=( 2*a*x - sqrt(4*a*a*x*x - 4*a*(y-b*x-c)) )/(4*a);
    const double dx1 = x-t1;
    const double dx2 = x-t2;
    const double dy1 = y - (a*t1*t1+b*t1+c);
    const double dy2 = y - (a*t2*t2+b*t2+c);
    const double r1 = sqrt(dx1*dx1 + dy1*dy1);
    const double r2 = sqrt(dx2*dx2 + dy2*dy2);
    return std::min(r1, r2);   // Ну или   return (r1<r2)?r1:r2;                
}
Но выкладки всё равно проверь, я их наспех писал и мог что-то проглядеть.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru