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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.12.2014, 17:22   #11
Dvoishnik
Форумчанин
 
Регистрация: 12.02.2011
Сообщений: 808
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
x1,y1 - координаты нач.точки (твой X,Y)
x2,y2 - координаты кон.точки (твой X1,Y1)
Выражай y через x, меняющийся от x1 до x2 (от X до X1)
у=y1+(x-x1)*(y2-y1)/(x2-x1)Будут большие проблемы при программировании
у же есть проблемы как видите.

так будет работать?
Код:
x2:=300;
y2:=207;
x:=23;
y:=30;
for x1:=24 to x2-1 do
for y1:=31 to y2-1 do
if (x2-x1)<>0 and (y2-y1)<>0 then;
if (x-x1)/(x2-x1)=(y-y1)/(y2-y1) then 
Begin
str1:=st1r+IntToStr(x1); //координаты лежащие по оси х для данного отрезка
str2:=st2r+IntToStr(y1); //координаты лежащие по оси у для данного отрезка
end;
Терпение!Дежурный экстрасенс скоро свяжется с вами!

Последний раз редактировалось Dvoishnik; 30.12.2014 в 17:36.
Dvoishnik вне форума Ответить с цитированием
Старый 30.12.2014, 17:31   #12
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Не будет
Код:
  x1:=23;
  y1:=30;
  x2:=300;
  y2:=207;
  x=x1;
  Delta:=1; //приращение x, можно и больше
  while x<=x2 do begin
    y:=Round(y2+(x-x1)*(y2-y1)/(x2-x1));
    // вот здесь рисовать тот котнур с центром в x,y
    x:=x+Delta;
  end;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 30.12.2014, 18:14   #13
Dvoishnik
Форумчанин
 
Регистрация: 12.02.2011
Сообщений: 808
По умолчанию

не правильно направление вектора и длинна по этой формуле выходит
Терпение!Дежурный экстрасенс скоро свяжется с вами!
Dvoishnik вне форума Ответить с цитированием
Старый 31.12.2014, 08:52   #14
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Тогда я не понимаю вообще что нужно сделать. Вектор нарисовать что-ли?
Вектор будет {x2-x1,y2-y1}
Длина корень квадратный из (x2-x1)^2+(y2-y1)^2
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 31.12.2014 в 08:54.
Аватар вне форума Ответить с цитированием
Старый 31.12.2014, 10:31   #15
Dvoishnik
Форумчанин
 
Регистрация: 12.02.2011
Сообщений: 808
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Тогда я не понимаю вообще что нужно сделать. Вектор нарисовать что-ли?
Вектор будет {x2-x1,y2-y1}
Длина корень квадратный из (x2-x1)^2+(y2-y1)^2
да блин кружок должен рисоваться, стираться, рисоваться, стираться, рисоваться, тем самым имитируя движение на указанную кликом мышки точку от точки начала, но дело в том что по этой формуле кружок движется не совсем в верном направлении и не так далеко как надо.

П.С. приду домой скину код исходники и скрин. может я где то на касячил.
Терпение!Дежурный экстрасенс скоро свяжется с вами!
Dvoishnik вне форума Ответить с цитированием
Старый 31.12.2014, 10:46   #16
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Все правильно. На экране нумерация линий от нуля сверху вниз, т.е. Y вниз направлена. Если хочешь её вверх направить, то пересчитай y:=S-y, где S смещение оси X вниз, например 500. Не так далеко как надо не верю
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 31.12.2014, 10:52   #17
Dvoishnik
Форумчанин
 
Регистрация: 12.02.2011
Сообщений: 808
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Все правильно. На экране нумерация линий от нуля сверху вниз, т.е. Y вниз направлена. Если хочешь её вверх направить, то пересчитай y:=S-y, где S смещение оси X вниз, например 500. Не так далеко как надо не верю
число S будет зависеть от размера формы (области рисования) по оси y я так понимаю?
ну может зрительно так выглядело, из за искажения направления. Попробую внести изменения. еще раз спасибо, С наступающим вас))
Терпение!Дежурный экстрасенс скоро свяжется с вами!

Последний раз редактировалось Dvoishnik; 31.12.2014 в 10:55.
Dvoishnik вне форума Ответить с цитированием
Старый 31.12.2014, 10:55   #18
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Для S=500
Код:
procedure TForm1.Button1Click(Sender: TObject);
var x1,x2,x,y1,y2,y,Delta: Integer;
begin
  x1:=23;
  y1:=30;
  x2:=300;
  y2:=207;
  x:=x1;
  Delta:=2; //приращение x, можно и больше
  while x<=x2 do begin
    y:=Round(y2+(x-x1)*(y2-y1)/(x2-x1));
    Canvas.FillRect(ClientRect);
    Canvas.RoundRect(x-25,500-(y-25),x+25,500-(y+25),75,75);
    Sleep(50);
    x:=x+Delta;
  end;
end;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 31.12.2014, 11:03   #19
Dvoishnik
Форумчанин
 
Регистрация: 12.02.2011
Сообщений: 808
По умолчанию

S то отчего зависеть будет??
я правильно предположил в посте выше?
Терпение!Дежурный экстрасенс скоро свяжется с вами!
Dvoishnik вне форума Ответить с цитированием
Старый 31.12.2014, 11:10   #20
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

От размеров формы. И эти иксы и игрики не должны за её пределы вываливаться, иначе масштабировать придется
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как рассчитать fcs - frame check sequence _Night_Scream_ Работа с сетью в Delphi 10 04.09.2013 10:14
Как рассчитать количество люмин. ламп на 1м2 olegwolf Microsoft Office Excel 7 12.06.2011 22:48
Как рассчитать возраст sql запрос slai БД в Delphi 5 28.09.2010 11:02
Как рассчитать периметр фигуры Kuzia Microsoft Office Excel 4 24.12.2009 07:51
Как рассчитать значения в табеле? fs444 Microsoft Office Excel 2 16.11.2009 13:10