IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Высоты треугольника
Глюк
сообщение 22.04.2007 21:03
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 34
Пол: Мужской

Репутация: -  0  +


Здравствуйте. Здесь часть программки,которая рисует треугольник и его высоты. Проблема в одном: там строчка выделена. Почему,когда g1=l она не переходит к выполнению условия??? Все пробую....скажите,где ошибка???Заранее благадарю!
Код
procedure TForm1.Button3Click(Sender: TObject);
const picScale = 10;
var
ma_x, ma_y, mb_x, mb_y, mc_x, mc_y: integer;
ha_x, ha_y, hb_x, hb_y, hc_x, hc_y: integer;
ba_x, ba_y, bb_x, bb_y, bc_x, bc_y: integer;
i,j,m:integer;
          k1,k2,k3,z1,z2,z3:integer;   {integer}
          p,a,b,c:real;
          g1,g2,l:{extended}real;
          Xh, Yh, Zh: integer;

begin
  with paintbox1.Canvas do begin
    pen.Color := clBlack;
    moveto(picScale*strtoint(edit1.Text), picScale*strtoint(edit2.Text));
    lineto(picScale*strtoint(edit3.Text), picScale*strtoint(edit4.Text));
    lineto(picScale*strtoint(edit5.Text), picScale*strtoint(edit6.Text));
    lineto(picScale*strtoint(edit1.Text), picScale*strtoint(edit2.Text));
pen.Color := clGreen;
    k1:=10*strtoint(edit1.Text);
   k2:=10*strtoint(edit3.text);
    k3:=10*strtoint(edit5.text);
  z1:=10*strtoint(edit2.text);
   z2:=10*strtoint(edit4.text);
    z3:=10*strtoint(edit6.text);
  a:= sqrt(sqr(k1-k2)+sqr(z1-z2));
  b:= sqrt(sqr(k2-k3)+sqr(z2-z3));
  c:= sqrt(sqr(k1-k3)+sqr(z1-z3));
  p:=(a+b+c)/2;


{g1:= abs(sqrt(sqr(i-k2)+sqr(j-z2))); }
  g2:= (2*sqrt(p*(p-a)*(p-b)*(p-c)))/c;
  l:=abs(g2);
    for i:=k1 to k3 do
    begin
    for j:=z1 to z3 do
    begin
     g1:= sqrt(sqr(i-k2)+sqr(j-z2));
      if (g1=l) then   {почему,когда g1=l она не переходит к выполнению условия???}
       begin
        Xh := i;
        Yh := j;  
       end;
       end; end;
       moveto(10*strtoint(edit3.Text), picScale*strtoint(edit4.Text));
    lineto(Xh, Yh);


Сообщение отредактировано: Глюк - 22.04.2007 21:07
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Глюк
сообщение 25.04.2007 20:29
Сообщение #2


Новичок
*

Группа: Пользователи
Сообщений: 34
Пол: Мужской

Репутация: -  0  +


Ещё я этот же способ применил и для рисования биссектрис-ВСЁ получается!!! good.gif
Спасиб ещё раз!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 25.04.2007 21:01
Сообщение #3


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(Глюк @ 25.04.2007 21:29) *

Ещё я этот же способ применил и для рисования биссектрис-ВСЁ получается!!! good.gif

Приятно слышать! smile.gif Просто бальзам по сердцу.. Поздравляю!
Не знаю, нужно ли тебе, но у меня совет по дальнейшему улучшению и развитию.. Я бы сделал что-то типа такого..
Делаешь примерно такую структуру:

type
tPoint=record {тип точка}
x,y {координаты}
end;
tTriangle=record {тип треугольник}
Body:array[1..3]of record {тело}
Top,Hight,Bis,Med:tPoint; {вершины!! и основания высот, биссектрис, медиан}
l:real {длина стороны}
end;
s,p: {площадь, периметр}
end;

var
A,B: tTriangle;

Для задания треугольника необходимы только поля вершин.
После этого все вычисления проводишь в цикле по вершинам и т.п. Вывод графики тоже в цикле.. smile.gif
Успехов!


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Глюк   Высоты треугольника   22.04.2007 21:03
volvo   Потому, что нельзя сравнивать вещественные числа н...   22.04.2007 21:08
Глюк   Потому, что нельзя сравнивать вещественные числа ...   22.04.2007 22:30
Lapp   может что-то не так в самом тексте? Он иногда прав...   23.04.2007 8:34
Глюк   Во-первых, этот метод сам по себе неверный (в э...   23.04.2007 9:14
Lapp   а каким тогда способом можно найти точку,куда буд...   23.04.2007 9:43
Глюк   Ну, например, так: Высота из угла А делит противо...   23.04.2007 18:46
Lapp   как можно отложить отрезок,зная только его длину ...   24.04.2007 1:26
Глюк   Все понятно? вообще-то не все... :unsure: B...   24.04.2007 19:29
Lapp   BC=a -это отрезок,на котором лежит высота треугол...   24.04.2007 20:58
Глюк   Проекция всегда меньше длины самого отрезка. ...   24.04.2007 22:35
Глюк   Спасибо,сейчас работает,но он не правильно высоту ...   22.04.2007 22:05
Глюк   :unsure: :unsure: подскажите,пожалуйста   23.04.2007 21:26
Глюк   у меня все-равно не так рисует...высота короткая п...   25.04.2007 0:20
Lapp   у меня все-равно не так рисует...высота короткая ...   25.04.2007 6:40
Глюк   Lapp Ура. :) Всё наконец получилось! Спасибо ...   25.04.2007 18:13
Глюк   Ещё я этот же способ применил и для рисования бисс...   25.04.2007 20:29
Lapp   Ещё я этот же способ применил и для рисования бис...   25.04.2007 21:01
Глюк   Lapp Ок. Спасибо! Попробуем :)   26.04.2007 13:32


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 7:01
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"