Add(Img_Point,10361775,455,315)
{
Color=-16777203
Size=10
Point(X)
Point(Y)
link(onDraw,12465343:doRefresh,[(499,321)(499,265)(443,265)(443,209)])
link(Bitmap,12465343:Bitmap,[])
link(X,14307840:Result,[(468,303)(335,303)])
link(Y,16095580:Result,[(475,303)(384,303)])
}
Add(Timer,11502362,126,329)
{
Interval=100
AutoStop=360
link(onTimer,1782630:doEvent1,[])
}
Add(Hub,1782630,210,329)
{
link(onEvent1,10043336:doNext,[(238,335)(238,384)])
}
Add(MainForm,5818658,140,161)
{
@Hint=#8:(c) Aziz|
Width=500
Height=500
Caption="Рисование окружности по формуле"
}
Add(PaintBox,12465343,455,203)
{
Left=55
Top=10
Width=245
Height=218
Align=5
Color=16777215
WinStyle=1
ColorSp=0
Point(onClick)
}
Add(MathParse,14307840,329,259)
{
@Hint=#38:Math.sin((Math.PI * angl / 180) / 2), |30:x = 150 + R * cos ((pi *2)* t)|31:y = 150 + R * sin (-(pi *2)* t)|27:%3 + %2 * cos ((pi *2)* %1)|
DataCount=3
MathStr="%3 + %2 * cos ((3.14 * %1 / 180))"
link(X2,9867155:Var2,[(342,229)(321,229)])
link(X3,11880627:Var2,[(349,229)(363,229)])
}
Add(CounterEx,10043336,252,378)
{
Max=359
link(onNext,8911218:doEvent1,[(292,384)(292,265)])
}
Add(For,8238168,252,322)
{
End=359
}
Add(MathParse,16095580,378,259)
{
@Hint=#30:x = 150 + R * cos ((pi *2)* t)|31:y = 150 + R * sin (-(pi *2)* t)|27:%3 + %2 * cos ((pi *2)* %1)|
DataCount=3
MathStr="%3 + %2 * sin (-(3.14 * %1 / 180))"
link(X2,9867155:Var3,[(391,215)])
link(X3,11880627:Var3,[(398,222)])
}
Add(Hub,8911218,301,259)
{
OutCount=3
link(onEvent1,14307840:doCalc,[])
link(onEvent2,16095580:doCalc,[(347,272)(347,265)])
link(onEvent3,10361775:doDraw,[(385,279)(385,321)])
}
Add(Memory,13135093,315,168)
{
Default=Integer(150)
}
Add(Memory,7855591,357,168)
{
Default=Integer(240)
}
Add(GetDataEx,9867155,315,210)
{
link(Data,13135093:Value,[])
}
Add(GetDataEx,11880627,357,217)
{
link(Data,7855591:Value,[])
}
Этот топик читают: Гость
Ответов: 1291
Рейтинг: 47
|
|||
Может кому пригодится.
|
|||
карма: 3 |
|
Ответов: 783
Рейтинг: 168
|
|||
Aziz, Зачем переводить в радианы если можно сразу в градусах?
|
|||
карма: 15 |
|
Ответов: 1291
Рейтинг: 47
|
|||
Gunta, благодарю! Супер. В тригонометрии и математике не силен, погуглил и из примеров для JS кода выдернул формулу. Но и раньше встречал подобное сочетание. Это наши компоненты такие продвинутые что ли, почему авторы во многих местах такие преобразования делают для рисования и вращения по кругу?
--- Добавлено в 2023-03-28 13:41:08 Вспомнил код откуда взял формулу. Сильно в него не вникал, но похоже там радианы применили потому что там для развертки использовалось Время, то есть линейный счетчик. И видимо, чтобы его "закруглить" к 360 градусам и применили радианы. А я скопипастил не вникая, каюсь) Удивительно что вообще работало с таким двойным преобразованием. Копипастил формулу из комментов тут: https://ru.stackoverflow.com/questions/566494/Нарисовать-круг-средствами-html4-js-без-явного-css Редактировалось 3 раз(а), последний 2023-03-29 00:56:10 |
|||
карма: 3 |
|
Ответов: 5227
Рейтинг: 587
|
|||
Aziz, вот хороший ресурс который не раз выручал. Респект чуваку, надо к нему зарегатся да как всегда некогда (отговорка это всё, понимаю. Каюсь)
Сайт -> https://ip76.ru/ |
|||
карма: 4 |
|
Ответов: 1291
Рейтинг: 47
|
|||
andrestudio, спасибо большое, да, очень интересный и полезный сайт, пригодится.
--- Добавлено в 2023-03-29 00:31:38 Там как раз есть то что я собирался сам делать - рисовать спираль. Я делаю сканер цветов нарисованных калейдоскопом для создания мелодии.. Хотя спираль можно просто сделать уже и из вышестоящей схемы - просто увеличивая радиус одновременно с разверткой по градусам.. Код Дельфи с того ресурса:
--- Добавлено в 2023-03-29 00:51:10 Вот интересная спираль получилась) Только как сделать чтобы регулировать раздельно расстояние между витками и точками спирали? Буду тот код с твоего сайта изучать.
Редактировалось 4 раз(а), последний 2023-03-29 00:57:06 |
|||
карма: 3 |
|
Ответов: 8921
Рейтинг: 823
|
|||
Aziz, не далее, чем вчера, рисовал спираль для другого форума, математического, спираль без окончания, ограничивается лишь точностью чисел "double" , вот картинка:
https://disk.yandex.ru/i/zxB_xYNrqPYimg |
|||
карма: 19 |
|
Ответов: 1291
Рейтинг: 47
|
|||
Леонид, интересно. Делись формулой) Вообще визуализация сложной математической геометрии, например, 4-мерных фигур, полезна для понимания. Вот бы еще визуализировать Математические Проблемы Тысячелетия и их решения возможно появятся.
Редактировалось 1 раз(а), последний 2023-03-29 13:53:01 |
|||
карма: 3 |
|
Ответов: 8921
Рейтинг: 823
|
|||
Aziz, формулы на рисунке а словами:
"Точка М двигается по кривой, радиус кривизны определяется формулой R=3*cos(pi*t/3)-2, а пройденный путь S=5*sin(pi*t/3)" |
|||
карма: 19 |
|
Ответов: 1291
Рейтинг: 47
|
|||
Леонид, понял) Спасибо)
Оффтоп Вот бы еще помог мне нарисовать 4-й перпендикуляр к уже имеющимся 3-м в наших измерениях..)) Нет случайно такой формулы? |
|||
карма: 3 |
|
Ответов: 8921
Рейтинг: 823
|
|||
Aziz, у вас на компьютере %%hiasmхххх\Elements\Delphi\Example\OpenGL\Space\4_D_шарики.sha (4D_куб.sha)
|
|||
карма: 19 |
|
Ответов: 1291
Рейтинг: 47
|
|||
Леонид, гляну, сенкс, все боялся его запускать)
Вот любопытные фигуры Френеля рисует, аж свет начинает преломляться в глазах или в мозгу интерференция...
--- Добавлено в 2023-03-29 20:18:05 А вот и спиралька
--- Добавлено в 2023-03-29 20:48:16 Чуть упростил и замедлил
Редактировалось 2 раз(а), последний 2023-03-29 20:48:16 |
|||
карма: 3 |
|
Ответов: 783
Рейтинг: 168
|
|||
Aziz писал(а): Чуть упростил и замедлил
|
|||
карма: 15 |
|
Ответов: 1291
Рейтинг: 47
|
|||
Gunta, спасибо) Я к подобному варианту тоже пришел, но отбросил ради наглядности - чтобы не упускать развертку в 360 гр, обозначающую один виток спирали и чтобы более наглядно было как модифицируется спираль. И масштабируемости - при увеличении диаметра спирали придется неинтуитивно подбирать значения ее длины, которая сейчас у вас 1000 точек в счетчике.
|
|||
карма: 3 |
|
13