0 / 0 / 0
Регистрация: 08.08.2011
Сообщений: 23

Редактируя треугольник сделать из него равнобедренный

09.08.2011, 11:27. Показов 4990. Ответов 38
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужна программка на VB 6.0: Редактируя треугольник сделать из него равнобедренный. Так вот, я треугольник могу построить, а как сделать из него равнобедренный??? Кто-нибудь, помогите, пожалуйста!!!

Построение треугольника (на нажатие правой кнопкой мыши появляется точка, затем 3 точки соединяются в треугольник. а на нажатие левой кнопкой на вершину, треугольник можно редактировать):
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
Option Explicit
Option Base 1
Dim i As Integer, ii As Integer
Dim a1 As Single, a2 As Single, a3 As Single, b1 As Single, b2 As Single, b3 As Single
Dim fl As Boolean
Dim xx() As Single
Dim xxx() As Single
Dim yyy() As Single
Dim yy() As Single
 
Private Sub Form_Activate()
Picture1.Scale (-10, 10)-(10, -10)
fl = False
End Sub
 
Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 2 Then
i = i + 1
If i < 4 Then
ReDim Preserve xx(i)
ReDim Preserve yy(i)
xx(i) = X
yy(i) = Y
Picture1.Circle (X, Y), 0.1
If i = 3 Then
Picture1.Line (xx(2), yy(2))-(xx(1), yy(1))
Picture1.Line (xx(3), yy(3))-(xx(2), yy(2))
Picture1.Line (xx(1), yy(1))-(xx(3), yy(3))
End If
End If
End If
End Sub
 
Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
For i = 1 To 3
If Sqr((xx(i) - X) ^ 2 + (yy(i) - Y) ^ 2) < 0.2 Then
ii = i
Picture1.MousePointer = vbCrosshair
fl = True
Exit Sub
End If
Next i
End If
End Sub
 
Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 And fl = True Then
xx(ii) = X
yy(ii) = Y
Picture1.Cls
Triangle
End If
End Sub
 
Private Sub Triangle()
For i = 1 To 3
Picture1.Circle (xx(i), yy(i)), 0.1
Next i
Picture1.Line (xx(2), yy(2))-(xx(1), yy(1))
Picture1.Line (xx(3), yy(3))-(xx(2), yy(2))
Picture1.Line (xx(1), yy(1))-(xx(3), yy(3))
End If
End Sub
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.08.2011, 11:27
Ответы с готовыми решениями:

Равнобедренный треугольник со вписанной в него окружностью
Программа должна рисовать равнобедренный треугольник со вписанной в него окружностью, но появляется ошибка ; ошибка: неверно сформированный...

Сделать равнобедренный треугольник из прямоугольного
Здравствуйте. Есть прямоугольный треугольник. Как из него сделать равнобедренный? #include &lt;stdio.h&gt; int main (){ int...

В Paintbox вписать в круг треугольник, потом квадрат, и равнобедренный треугольник
Int a=StrToInt (Edit1-&gt;Text); PaintBox-&gt;Canvas-&gt;Ellipse(200-a/2,200-a/2,200+a/2,200+a/2);нарисовал круг, а как вписать в него другие...

38
2 / 2 / 1
Регистрация: 18.10.2007
Сообщений: 1,748
09.08.2011, 16:26
Студворк — интернет-сервис помощи студентам
МатФак? )))))) чему вас там учат то?
Я бы ещще понял, если бы, к примеру медицинский...
Но на матфаке основные предметы Матан и Ангем....
Как можно там учиться и не знать вещей, проходимых в средней школе?
0
0 / 0 / 0
Регистрация: 08.08.2011
Сообщений: 23
09.08.2011, 16:27  [ТС]
В средней школе проходят VB? Видимо нев в той школе, гду училась я, потому что мы программирование там вообще не проходили... никак... :-((
0
2 / 2 / 1
Регистрация: 18.10.2007
Сообщений: 1,748
09.08.2011, 16:28
ну а что такого? конечно в IF..
if Sqr(a1 ^ 2 + b1 ^ 2) = Sqr(a2 ^ 2 + b2 ^ 2) Or Sqr(a3 ^ 2 + b3 ^ 2) = Sqr(a2 ^ 2 + b2 ^ 2) Or Sqr(a1 ^ 2 + b1 ^ 2) = Sqr(a3 ^ 2 + b3 ^ 2) then msgbox 'OK'
0
1 / 1 / 0
Регистрация: 07.03.2010
Сообщений: 111
09.08.2011, 16:30
Тут нужна в основном геометрия )
(Но это и без меня здесь уже говорили).

А VB можно и по самоучителю освоить.
0
1 / 1 / 0
Регистрация: 07.03.2010
Сообщений: 111
09.08.2011, 16:34
Да и еще, я тут писал sqrt вместо sqr, не сочтите за неграмотность, просто я пишу чаще на СИ, а там это пишется именно так.
0
0 / 0 / 0
Регистрация: 08.08.2011
Сообщений: 23
09.08.2011, 16:45  [ТС]
Я не тупая как кажется, написала вот программку. Толку-то только? Теперь у меня другой вопрос, как попасть в ту точку, где треугольник станет равнобедренным? Я имею в виду, как сделать не точное, а приближенное попадание курсором в вершину треугольника?
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
Option Explicit
Option Base 1
Dim i As Integer, ii As Integer
Dim fl As Boolean
Dim xx() As Single
Dim yy() As Single
 
Private Sub Form_Activate()
Picture1.Scale (-10, 10)-(10, -10)
fl = False
End Sub
 
Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 2 Then
i = i + 1
If i < 4 Then
ReDim Preserve xx(i)
ReDim Preserve yy(i)
xx(i) = X
yy(i) = Y
Picture1.Circle (X, Y), 0.1
If i = 3 Then
Picture1.Line (xx(2), yy(2))-(xx(1), yy(1))
Picture1.Line (xx(3), yy(3))-(xx(2), yy(2))
Picture1.Line (xx(1), yy(1))-(xx(3), yy(3))
End If
End If
End If
End Sub
 
Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
For i = 1 To 3
If Sqr((xx(i) - X) ^ 2 + (yy(i) - Y) ^ 2) < 0.2 Then
ii = i
Picture1.MousePointer = vbCrosshair
fl = True
Exit Sub
End If
Next i
End If
End Sub
 
Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 And fl = True Then
xx(ii) = X
yy(ii) = Y
Picture1.Cls
Triangle
End If
End Sub
 
Private Sub Triangle()
For i = 1 To 3
Picture1.Circle (xx(i), yy(i)), 0.1
Next i
Picture1.Line (xx(2), yy(2))-(xx(1), yy(1))
Picture1.Line (xx(3), yy(3))-(xx(2), yy(2))
Picture1.Line (xx(1), yy(1))-(xx(3), yy(3))
If Sqr((xx(2) - xx(1)) ^ 2 + (yy(2) - yy(1)) ^ 2) = Sqr((xx(3) - xx(2)) ^ 2 + (yy(3) - yy(2)) ^ 2) Or Sqr((xx(1) - xx(3)) ^ 2 + (yy(1) - yy(3)) ^ 2) = Sqr((xx(3) - xx(2)) ^ 2 + (yy(3) - yy(2)) ^ 2) Or Sqr((xx(2) - xx(1)) ^ 2 + (yy(2) - yy(1)) ^ 2) = Sqr((xx(1) - xx(3)) ^ 2 + (yy(1) - yy(3)) ^ 2) Then
MsgBox 'треугольник равнобедренный'
End If
End Sub
0
2 / 2 / 1
Регистрация: 18.10.2007
Сообщений: 1,748
09.08.2011, 16:59
мдааа..... логики, у вас, девушка, никакой.
Вот так вот надо:

If Abs(Sqr((xx(2) - xx(1)) ^ 2 + (yy(2) - yy(1)) ^ 2) - Sqr((xx(3) - xx(2)) ^ 2 + (yy(3) - yy(2)) ^ 2) < 90) Or Abs(Sqr((xx(1) - xx(3)) ^ 2 + (yy(1) - yy(3)) ^ 2) - Sqr((xx(3) - xx(2)) ^ 2 + (yy(3) - yy(2)) ^ 2)) < 90 Or Abs(Sqr((xx(2) - xx(1)) ^ 2 + (yy(2) - yy(1)) ^ 2) - Sqr((xx(1) - xx(3)) ^ 2 + (yy(1) - yy(3)) ^ 2)) < 90 Then

где 90 - максимальное возможное отклонение.
Abs - модуль числа.
0
0 / 0 / 0
Регистрация: 08.08.2011
Сообщений: 23
09.08.2011, 16:59  [ТС]
Всем БОЛЬШУЩЕЕЕ СПАСИБО!!! Спасибо за помощь и за внимание!!! Всё, программка работает.......
=^_^=
0
0 / 0 / 0
Регистрация: 08.08.2011
Сообщений: 23
09.08.2011, 17:01  [ТС]
Можно, кстати, проще поступить:
(Sqr((xx(2) - xx(1)) ^ 2 + (yy(2) - yy(1)) ^ 2)) - (Sqr((xx(3) - xx(2)) ^ 2 + (yy(3) - yy(2)) ^ 2)) < 0.3 Or (Sqr((xx(1) - xx(3)) ^ 2 + (yy(1) - yy(3)) ^ 2)) - (Sqr((xx(3) - xx(2)) ^ 2 + (yy(3) - yy(2)) ^ 2)) < 0.3 Or (Sqr((xx(2) - xx(1)) ^ 2 + (yy(2) - yy(1)) ^ 2)) - (Sqr((xx(1) - xx(3)) ^ 2 + (yy(1) - yy(3)) ^ 2)) < 0.3
ну не проще, так понятнее для меня)
:-)))
0
1 / 1 / 0
Регистрация: 07.03.2010
Сообщений: 111
09.08.2011, 17:02
>>Я имею в виду, как сделать не точное, а приближенное попадание курсором в вершину треугольника?

Не понятно поясни.
0
1 / 1 / 0
Регистрация: 07.03.2010
Сообщений: 111
09.08.2011, 17:04
Прошу прощения, пока я отправлял сообщение, вы решили проблему.
0
0 / 0 / 0
Регистрация: 08.08.2011
Сообщений: 23
09.08.2011, 17:04  [ТС]
To Aniskov: Трудно курсором попасть в необходимую нам точку, поэтому надо взять окрестность точки побольше
0
5 / 5 / 0
Регистрация: 08.12.2009
Сообщений: 213
09.08.2011, 17:09
Попасть в точку мышью, да еще чтобы получился равнобедренный треугольник, это все равно, что попасть пальцем в небо. Почему? потому что вычисления проводятся для чисел с точкой, в то время как мышь работает с пикселями (целыми числами).
Поэтому предлагаю прежде, чем делать сравнение отсекать числа после запятой, или более того, надо принять некую допустимую погрешность (например 2-5 пикселей). Сделав проверку с учетом погрешности и приняв результат (согласится что треугольник равнобедренный) просто в коде подкорректировать точку. В этом случае, визуально, при приближении мыши к необходимой точке, треугольник будет устанавливаться сам.
(конечно не совсем сам, надо эту проблему решить в коде ).
0
5 / 5 / 0
Регистрация: 08.12.2009
Сообщений: 213
09.08.2011, 17:11
Ну у вас и скорость, пока писал свой ответ, вы уже набросали тут похожих ответов.
Молодцы!!!
0
0 / 0 / 0
Регистрация: 08.08.2011
Сообщений: 23
09.08.2011, 17:15  [ТС]
Всё равно всем огроменное спасибо за помощь :-)
0
Comanche
09.08.2011, 17:17
Ну ничего себе, вы тут напостили )
Messir
09.08.2011, 22:12
Так, пора делать в профайле обязательной для заполнения графу 'Пол' и 'Возраст' И фотку по возможности...
6 / 6 / 3
Регистрация: 17.10.2007
Сообщений: 1,119
09.08.2011, 22:20
I ravnobedrennyiy treugol'nik
0
0 / 0 / 0
Регистрация: 08.08.2011
Сообщений: 23
10.08.2011, 08:06  [ТС]
Ага, фотку, пол и возраст в профайле это идея....
А я прям сейчас могу сознаться, что мне 17 лет... :-)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.08.2011, 08:06
Помогаю со студенческими работами здесь

Процедура позволяет рисовать треугольник по координатам вершин трёх точек. Нарисовать прямоугольный треугольник, и равнобедренный
помогите пожалуйста решить, срочно нужно на экзамен...жду вашей помощи) 1)Процедура позволяет рисовать треугольник по координатам вершин...

Класс треугольник с произвольным классом - равнобедренный треугольник
Создать класс треугольник, члены класса - длины 3-х сторон. Предусмотреть в классе методы проверки существования треугольника, вычисления и...

Равнобедренный треугольник
Зная величину трех углов треугольника в градусах выяснить может ли существовать такой треугольник. если да, то является ли он...

равнобедренный треугольник
Подскажите, пожалуйста, как написать программку, которая по нажатию кнопки &quot;вычислить&quot; выдавала бы результат. Задача такая: в...

Равнобедренный треугольник
Здравствуйте! Пожайлуста помогите решить. Угл при вершине равнобедренного треугольника 120, а боковая сторона 3. Найти радиус описанной...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
39
Ответ Создать тему
Опции темы

Новые блоги и статьи
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru