Тема: S-Optitron
Показать сообщение отдельно
Старый 30.11.2007, 00:14   #75
SeRiLLo
Старший Пользователь
 
Аватар для SeRiLLo
 
Регистрация: 01.12.2006
Возраст: 44
Город: Москва
Машина: Audi A6(4B) 2.8quattro
Сообщений: 263
SeRiLLo has a spectacular aura aboutSeRiLLo has a spectacular aura about
По умолчанию

Цитата:
Сообщение от mebitek Посмотреть сообщение
Стрелки победить немогу!
x0,y0 - координаты центра окружности
R-радиус окружности.
x.y - координаты текущего места на окружности, вычисляются по формуле (x-x0)^2+(y-y0)^2=R^2
Далее что то типа этого.
[DllImport("coredll", SetLastError=true)]
public static extern IntPtr SelectObject(IntPtr hDC, IntPtr hObject);
public struct POINT
{
public int x;
public int y;
public POINT(int x, int y)
{
this.x = x;
this.y = y;
}
}
[DllImport("coredll.dll", SetLastError=true)]
public static extern int MoveToEx(
IntPtr hdc,
int X,
int Y,
ref POINT lpPoint);
[DllImport("coredll.dll", SetLastError=true)]
public static extern int LineTo(
IntPtr hdc,
int nXEnd,
int nYEnd);
[DllImport("coredll", SetLastError=true)]
public static extern IntPtr SelectObject(IntPtr hDC, IntPtr hObject);

public void DrawLine(PenAGP pen, int xStart, int yStart, int xEnd, int yEnd)
{lock(this)
{
IntPtr hOldPen = IntPtr.Zero;
hOldPen = GDIPlus.SelectObject(hDC, pen.hPen);
//Set start position
GDIPlus.POINT pt = new GDIPlus.POINT();
GDIPlus.MoveToEx(hDC, xStart, yStart, ref pt);
//Drawe line
GDIPlus.LineTo(hDC, xEnd, yEnd);
GDIPlus.SelectObject(hDC, hOldPen);
}
}

В тексте
Graphics Graphik=null;
Graphik = Graphics.FromControl(this) ;
//тута рисуем стрелку линиями
Graphik.DrawLine(ArrowPen,x0,y0,x,y);
Graphik.DrawLine(ArrowPen,x0,y0,x1,y1);
......

Вот как то так...быстренько набросал, поэтому не полное и могут быть коски естессно, но в общем ничего сложного по-моему в стрелках нет.
Это в коде C#.net, но тут одни Api функции, поэтому перевести на любой язык проблем не будет
__________________
Audi A6 BlackToWhite CSR Carbon Edition - бесконечна
Lexus IS250 multimedia monster - закончен
SeRiLLo вне форума   Ответить с цитированием