Построение треугольника.

Статус
Закрыто для дальнейших ответов.

yuracom

Участник
Топикстартер
Сообщения
10
Реакции
0
Раз уж я попал в рай, то спрошу о насущном. Построение треугольника по трём известным сторонам сразу. Возможно ли это, или только при помощи радиусов?
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 246
Реакции
10 852
Если без использования макросов, то, на первый взгляд, быстрее всего так:
upload_2015-5-6_16-12-21.png
 

andrejK

R.I.P.
Сообщения
10 300
Реакции
5 218

Не по теме:
один радиус таки пострадал, Миш)))
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 246
Реакции
10 852
Ты можешь чтото более простое предложить? 'hmmm'
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 246
Реакции
10 852
Тьфу, блин, нет, так не годится!
Skew не сохраняет вторую сторону, а только высоту *(
Короче говоря, вариант такой - посчитать по формуле угол между сторонами, нарисовать одну, сдублировать, отмасштабировать, повернуть на этот угол, скомбинировать и замкнуть. Или нарисовать готовый треугольник, отмасштабировать на вычисленную высоту и сдвинуть на вычисленный сдвиг - быстрее, но считать дольше.
 

yuracom

Участник
Топикстартер
Сообщения
10
Реакции
0
Тьфу, блин, нет, так не годится!
Skew не сохраняет вторую сторону, а только высоту *(
Короче говоря, вариант такой - посчитать по формуле угол между сторонами, нарисовать одну, сдублировать, отмасштабировать, повернуть на этот угол, скомбинировать и замкнуть. Или нарисовать готовый треугольник, отмасштабировать на вычисленную высоту и сдвинуть на вычисленный сдвиг - быстрее, но считать дольше.
Смысл не найти другой вариант построения, а узнать, есть ли приблуда позволяющая просто указать три размера сторон и получить готовый треугольник. Нужно много треугольников строить, и только это может спасти гиганта мысли))
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 246
Реакции
10 852

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 246
Реакции
10 852
Код:
Sub Macro1()
    ActiveDocument.BeginCommandGroup "Triangle"
    ActiveDocument.Unit = cdrMillimeter
    Dim s1 As Shape
    a = 10
    b = 20
    c = 25
    p = (a + b + c) / 2
    h = Sqr(p * (p - a) * (p - b) * (p - c)) / c * 2
    x = Sqr(a * a - h * h)
  
    Set s1 = ActiveLayer.CreateLineSegment(0, 0, x, h)
    Dim crv As Curve
    Set crv = ActiveDocument.CreateCurve()
    With crv.CreateSubPath(0, 0)
        .AppendLineSegment x, h
        .AppendLineSegment c, 0
        .AppendLineSegment 0, 0
        .Closed = True
    End With
    s1.Curve.CopyAssign crv
    s1.Fill.ApplyNoFill
    s1.Outline.SetProperties 0.003, OutlineStyles(0), CreateCMYKColor(0, 0, 0, 100), ArrowHeads(0), ArrowHeads(0), False, False, cdrOutlineButtLineCaps, cdrOutlineMiterLineJoin, 0#, 100, , , 5#
    ActiveDocument.EndCommandGroup
End Sub
 

yuracom

Участник
Топикстартер
Сообщения
10
Реакции
0
в смысле я чайник(( мне бы пошагово
 

Baryga88

Участник
Сообщения
130
Реакции
39
Можно попробовать сделать через докер Координаты объекта.
 
Статус
Закрыто для дальнейших ответов.