Что нового

Как создать линию по диагонали?

agikon

Знающий
Сообщения
789
Репутация
17
ну паралельно осям X и Y это понятно как.
а вот как создать линию по диагонали?
например есть две точки и между ними надо создать линию.

точка1
x=100
y=100

точка2
x=200
y=200

это получается косая линия, под углом 45 градусов к горизонту, так вот как создать такую линию, толщиной например в 1 пиксель.
подскажите пожалуйста.
 
Автор
A

agikon

Знающий
Сообщения
789
Репутация
17
задача стоит чтобы средствами аутоита нарисовать.
 

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
Код:
#include <GDIPlus.au3>

$hGUI = GUICreate("GDI+", 210, 210)
GUISetState()

_Draw_Line(10, 10, 200, 200, 2, 0xFF0000)
_Draw_Line(200, 10, 10, 200, 4,0x0000FF)
_Draw_Line(10, 105, 200, 105, 3,0x00FF00)
_Draw_Line(105, 10, 105, 200, 5,0xFFFF00)

Do
Until GUIGetMsg() = -3

;$X1 - X1 координата
;$Y1 - Y1 координата
;$X2 - X2 координата
;$Y2 - Y2 координата
;$Bold - толщина линии
;$Color - цвет линии
Func _Draw_Line($X1, $Y1, $X2, $Y2, $bold=1, $Color=0x000000)
	_GDIPlus_Startup()
	Local $lastcolor = 0xFF000000 + $Color
	Local $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGUI)
	Local $hPen = _GDIPlus_PenCreate()
	_GDIPlus_PenSetColor($hPen, $lastcolor)
	_GDIPlus_PenSetWidth($hPen, $bold)
	_GDIPlus_GraphicsDrawLine($hGraphic, $X1, $Y1, $X2, $Y2, $hPen)
	_GDIPlus_PenDispose($hPen)
	_GDIPlus_GraphicsDispose($hGraphic)
	_GDIPlus_Shutdown()
EndFunc
 
Автор
A

agikon

Знающий
Сообщения
789
Репутация
17
Zaramot
спасибо!

сложновато однако.
 
Верх