Что нового

[Математика] отобразить функцию в графическом редакторе

damien2008

Осваивающий
Сообщения
178
Репутация
34
AutoIt: 3.3.8.1
Версия: 1.0
Лицензия:
Категория: Математика, Функции

Описание:
ээээ не знаю, даже как сказать...
в общем в продолжение темы о вечном :-[ написал небольшой скрипт, для..
в общем он рисует сердце :laugh:
не обязательно дарить к 8 марта, как показывает практика)
может кому тоже пригодится :D

P.S. это только небольшой пример. в перспективе - UDF (я так, думаю)
Рисует с помощью кривых Безье, если кому интересно)
Код/Пример:
Код:
#cs ----------------------------------------------------------------------------

 AutoIt Version: 3.3.8.1
 Author:		damien2008
 Adress:		http://vk.com/id12828277

 Script Function:
				draw heart)
#ce ----------------------------------------------------------------------------

HotKeySet("{Esc}", "ex")

Sleep(5000)
If WinExists("[Class:MSPaintApp]") Then
	$1 = WinGetHandle("[Class:MSPaintApp]")
	WinActivate($1)
	WinSetState($1, "", @SW_MAXIMIZE)
	MouseMove(350, 350, 0)
	_draw()
Else
	Run("mspaint")
	WinWait("[Class:MSPaintApp]")
	$1 = WinGetHandle("[Class:MSPaintApp]")
	WinActivate($1)
	WinSetState($1, "", @SW_MAXIMIZE)
	MouseMove(350, 350, 0)
	_draw()
EndIf
;$pi = 3.14 ; or $pi = 4 * atan(1)

Func _draw()
$pos = MouseGetPos()
$x1 = $pos[0]
$x2 = $pos[0]-162
$x3 = $pos[0]-283
$x4 = $pos[0]+8

$y1 = $pos[1]
$y2 = $pos[1]-114
$y3 = $pos[1]+145
$y4 = $pos[1]+297

$iDelay = 900 / 360

for $t=0 to 1 step 0.01
    MouseMove(((1-$t)^3)*$x1 + 3*((1-$t)^2)*$t*$x2 + 3*(1-$t)*($t^2)*$x3 + ($t^3)*$x4, ((1-$t)^3)*$y1 + 3*((1-$t)^2)*$t*$y2 + 3*(1-$t)*($t^2)*$y3 + ($t^3)*$y4, 0)
	MouseDown("Left")
    Sleep($iDelay)
Next
MouseUp("Left")

$x1 = $pos[0]
$x2 = $pos[0]+162
$x3 = $pos[0]+283
$x4 = $pos[0]-8

$y1 = $pos[1]
$y2 = $pos[1]-114
$y3 = $pos[1]+145
$y4 = $pos[1]+297

$iDelay = 900 / 360

for $t=0 to 1 step 0.01
    MouseMove(((1-$t)^3)*$x1 + 3*((1-$t)^2)*$t*$x2 + 3*(1-$t)*($t^2)*$x3 + ($t^3)*$x4, ((1-$t)^3)*$y1 + 3*((1-$t)^2)*$t*$y2 + 3*(1-$t)*($t^2)*$y3 + ($t^3)*$y4, 0)
	MouseDown("Left")
    Sleep($iDelay)
Next
MouseUp("Left")
EndFunc

Func ex()
    Exit
EndFunc

Exit

Источник: autoit-script.ru
Автор(ы): damien2008
 

AZJIO

Меценат
Меценат
Сообщения
2,879
Репутация
1,194
Re: [Математика] рисование

Я тоже пытался экшены делать мышкой

Код:
HotKeySet('{ESC}', '_Quit')
HotKeySet('!{F1}', '_k1')
HotKeySet('!{F2}', '_k2')
HotKeySet('!{F3}', '_k3')
HotKeySet('!{F5}', '_k5')
HotKeySet('!{F12}', '_k12')
Global $Tr = 1

Func _Quit()
    Exit
EndFunc

While 1
    Sleep(1000)
WEnd

Func _k5()
    $MP2 = MouseGetPos()
	; BlockInput(1)
	$R=60
	$R1=$R
	$v=1
	$z=1
	MouseMove($MP2[0]+$R1, $MP2[1]+$R*2, 0)
	MouseDown("left")
	For $i = 0 to 420
		$v+=1
		$x=$R*Cos($v/3.14159265358979 / 4)+$R1
		$y=$R*Sin($v/3.14159265358979 / 4)+$R1
		$z+=1
		If $z = 10 Then
			$z = 0
			$R-=1
		EndIf
		MouseMove($MP2[0], $MP2[1], 0)
		If $Tr = 1 Then Sleep(10)
		MouseMove($MP2[0]+$x, $MP2[1]+$y, 0)
	Next
	MouseUp("left")
	MouseMove($MP2[0], $MP2[1], 0)
	; BlockInput(0)
EndFunc

Func _k3()
Sleep(10)
    $MP2 = MouseGetPos()
	$R=60
	$R1=$R
	$v=270
	$z=1
	MouseMove($MP2[0]+$R*Cos($v/3.14159265358979 / 4)+$R1, $MP2[1]+$R*Sin($v/3.14159265358979 / 4)+$R1, 0)
	MouseDown("left")
	For $i = 0 to 630
		$z+=1
		If $z = 10 Then
			$z = 0
			$R-=1
		EndIf
		$x=$R*Cos($v/3.14159265358979 / 4)+$R1
		$y=$R*Sin($v/3.14159265358979 / 4)+$R1
		If $Tr = 1 Then Sleep(10)
		MouseMove($MP2[0]+$x, $MP2[1]+$y, 0)
		$v+=1
	Next
	MouseUp("left")
	MouseMove($MP2[0], $MP2[1], 0)
EndFunc

Func _k2()
    $MP2 = MouseGetPos()
	$w=200
	$h=100
	MouseDown("left")
	For $i = 0 to $h
		MouseMove($MP2[0]+$i, $MP2[1], 0)
		If $Tr = 1 Then Sleep(10)
		MouseMove($MP2[0], $MP2[1]+$i, 0)
	Next
	MouseMove($MP2[0], $MP2[1], 0)
	MouseUp("left")
EndFunc

Func _k1()
    $MP2 = MouseGetPos()
	$w=200
	$h=100
	For $i = 0 to $h
		MouseDown("left")
		MouseMove($MP2[0]+$i*2, $MP2[1]-$w, 0)
		MouseUp("left")
		MouseMove($MP2[0], $MP2[1], 0)
	Next
EndFunc

Func _k12()
	$Tr = Number(Not $Tr)
EndFunc
 
Автор
damien2008

damien2008

Осваивающий
Сообщения
178
Репутация
34
Re: [Математика] рисование

О!)
спираль у меня тоже есть.
только спираль Архимеда ^_^

Очень треугольнички понравились Ф2, и не знаю что, по Ф5
 

AZJIO

Меценат
Меценат
Сообщения
2,879
Репутация
1,194
Re: [Математика] рисование

damien2008
не знаю что, по Ф5
А как пробуешь? Я запускаю Paint и в нём рисует фигуры, карандашом. По Alt-F5 спиральный конус ;D. Alt-F12 переключает качество.
 
Автор
damien2008

damien2008

Осваивающий
Сообщения
178
Репутация
34
Re: [Математика] рисование

AZJIO
ну да в пейнте.
мой вариант тоже для графических редакторов.

спиральный конус, говоришь?) ну, может и конус 8)

вот что у меня рисует:


альт+Ф12 не рисует. все верно?
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Re: [Математика] рисование

damien2008

Предупреждение За нарушение правил форума (пункт Б.5):
Имя темы должно нести смысловую нагрузку (отражать суть вопроса/проблемы)
Правильно сформулированное название темы привлекает больше внимания, и шансы получить конкретный ответ увеличиваются.


Данные правила могут пополняться локальными правилами раздела.
Как правильно называть темы

"[Математика] рисование" - это неприемлемое название темы, переименуйте тему иначе она будет закрыта, а вам возможно будет выдан бан на несколько дней.

С уважением, ваш Администратор.
 
Верх