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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.12.2012, 16:28   #1
Chpoki
 
Регистрация: 31.03.2011
Сообщений: 4
По умолчанию Найти координаты параметрической кривой

Рассчитать координаты точек кривых (заданных в полярных координатах) для полярного угла F,изменяющегося на отрезке [Fнач:Fкон] с шагом дельтаF, при каждом из указанных значений А.

Сделал так: шаг у меня пи на 36, начало каждого отрезка это шаг+ предыдущий шаг. Далее по заданной формуле R[i]:=A[i]*sin((2*F[3])/180) нахожу радиус( расстояние между (0,0) и нашей новоиспеченной точкой) беру его как 1 сторону треугольника, получается у меня есть, угол-шаг и 90 градусный угол падающий на координатную прямую. У на сесть 3 известный угла и 1 сторона по формуле нахождения сторон прямоугольного треугольника нахожу х и у.

Я просто не понимаю мне R считать как радиус или вообще где го использовать. За радиус я его взял потому что в условии, в заданном уравнении, пишется так
"r={формула}" приписано "параметрическая прямая" , понятия не имею где ею еще можно воспользоваться.

Поделитесь пожалуйста своими мыслями на счет этого.


Код:
program lab_3;
uses
crt;
var
i,n: integer;
x,y,Fn: real;
A : array [1..4] of real;
F : array [1..3] of real;
R : array [1..4] of real;
key: char;
 
const
Pi=3.1415926;
 
begin
clrscr;
F[1]:=0;
F[2]:=2*Pi;
F[3]:=Pi/36;
 
A[1]:=50;
A[2]:=60;
A[3]:=70;
A[4]:=80;
 
Fn:=0;
for i:=1 to 4 do
 Begin
  if (F[2]>=Fn) then
   Begin
    R[i]:=A[i]*sin(2*((F[3]*pi)/180));
    Fn:=Fn+F[3];
    x:=cos((fn*Pi)/180)*R[i];
    y:=sqrt(sqr(x)+sqr(R[i]));
    Writeln('#',i,' to4ka',' x= ',x:1:8,' y= ',y:1:8  );
   end
 end;
key:=readkey;
if (key='q') then
 exit
end.
Chpoki вне форума Ответить с цитированием
Старый 04.12.2012, 03:31   #2
Chpoki
 
Регистрация: 31.03.2011
Сообщений: 4
По умолчанию

Неужели нет никаких соображений?
Chpoki вне форума Ответить с цитированием
Старый 04.12.2012, 09:09   #3
TinMan
Форумчанин
 
Аватар для TinMan
 
Регистрация: 05.09.2011
Сообщений: 869
По умолчанию

Цитата:
Сообщение от Chpoki Посмотреть сообщение
Неужели нет никаких соображений?
Чпоки, соображений полно, но ты сам себе навредил: ты плохо поставил задачу. Когда условие нечеткое, никому не хочется связываться.
Из твоих слов совершенно неясно, как заданы данные. Ты сначала пишешь, что они в полярных координатах, а потом ВДРУГ начинаешь вычислять радиус.. А зачем его вычислять, если он должен быть одной из полярных координат?..
Короче, твои мысли - это, конечно, хорошо, но четкую постановку задачи они не заменяют. По проге я пытался радобраться - не смог. Это вот 4 точки - это кривая? ну хорошо, а что такое массив A? Напиши ясно и понятно - входные данные, результат. Тогда будут "соображения" по делу..
Предпочитаю на "ты".
TinMan вне форума Ответить с цитированием
Старый 04.12.2012, 18:55   #4
Chpoki
 
Регистрация: 31.03.2011
Сообщений: 4
По умолчанию

условие такое я написал его полностью ничего не прибавлял ничего не убирал:
Рассчитать координаты точек кривых (заданных в полярных координатах) для полярного угла F,изменяющегося на отрезке [Fнач:Fкон] с шагом дельтаF, при каждом из указанных значений А.

R я обозвал радиусом, да наверно не правильно, это просто длина одной стороны ново вымышленного треугольника.
4 точки это вывод.
Значения А это массив А.
Массив F это F[1] F начальное F[2] F конечное F[3]дельтаF (шаг)
Fn - текущий значение F для вычислений
R[i] - значения по формуле( R[i]:=A[i]*sin(2*F[3]); по сути сама формула она такая, но я использовал формулу для определения значений х и у по формулам которые используют градусные величины, поэтому перевел )
X - вычислял по формулам нахождения сторон в прямоугольно треугольнике( a^2=cos(A)*c )
Y - по формулам нахождения сторон треугольника (a^2=b^2+C^2)
да и судя по всему допустил ошибку:
Код:
for i:=1 to 4 do
 Begin
  if (F[2]>=Fn) then
   Begin
    Fn:=Fn+F[3];
    R[i]:=A[i]*sin(2*((Fn*pi)/180));
    x:=cos((fn*Pi)/180)*R[i];
    y:=sqrt(sqr(x)+sqr(R[i]));
    Writeln('#',i,' to4ka',' x= ',x:1:8,' y= ',y:1:8  );
   end
 end;
Использовал F[3] ,постоянную, в данном случае. Поменял на специально для этого предназначающего Fn-нарастающий угол.

Вообще в это и была загвоздка я не понимал откуда взять 2 координаты. К примеру значения R это есть одна из координат вывода, но откуда взять вторую? И отсюда пошло все это извращение с геометрией 5 класса.

Последний раз редактировалось Chpoki; 04.12.2012 в 19:05.
Chpoki вне форума Ответить с цитированием
Старый 05.12.2012, 04:38   #5
TinMan
Форумчанин
 
Аватар для TinMan
 
Регистрация: 05.09.2011
Сообщений: 869
По умолчанию

Извини, но сильно яснее не стало.. Может быть, задание все-таки завучит так (моя вставка выделена болдом)
Цитата:
Рассчитать декартовы (x и y) координаты точек кривых (заданных в полярных координатах) для полярного угла F,изменяющегося на отрезке [Fнач:Fкон] с шагом дельтаF, при каждом из указанных значений А.
- а? Если так, то задание обретает смысл.
Предпочитаю на "ты".
TinMan вне форума Ответить с цитированием
Старый 05.12.2012, 13:05   #6
Chpoki
 
Регистрация: 31.03.2011
Сообщений: 4
По умолчанию

Боюсь что уточнений о виде координат там нету вообще.
Но я подозреваю что именно о них и идет речь, и именно декартовы координаты я и пытался высчитать.
Если мы предположим что, ментально, все таки поняли что хотел автор, и начали делать ,надеюсь, правильно через именно декартову систему координат.
Chpoki вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти координаты высоты треугольника roxy7 Общие вопросы Delphi 7 19.02.2012 21:43
Delphi найти координаты элемента. PAREN_DEFO Помощь студентам 2 16.11.2011 10:15
Численными методами найти длину кривой y=x^2 на участке от нуля до десяти с шагом 0,001? ivan.tiran Помощь студентам 13 05.10.2011 10:21
как найти координаты элементов Романн Помощь студентам 4 28.06.2011 23:11
СИ! Найти путь из одной координаты в другую. itstep Помощь студентам 0 14.02.2010 18:38