PCCar.ru - Ваш автомобильный компьютер

PCCar.ru - Ваш автомобильный компьютер (http://pccar.ru/index.php)
-   S-Optitron (http://pccar.ru/forumdisplay.php?f=85)
-   -   S-Optitron (http://pccar.ru/showthread.php?t=2798)

2func 26.11.2007 14:27

примерно так:
http://vw.by/img/146/259818_0x0.jpg

mebitek 26.11.2007 14:29

А исходник? :smile1:

2func 26.11.2007 14:45

смотри VW Touareg :big: :big: :big: :rofl:

ладно,
1. надо знать монег 4:3 или 16:9 - под них разные размеры круга,
2. при изменении размеров окна - размер картинки должен изменять пропорциально всем сторонам (круг не должен стать овалом)

по комбинациям приборов и украшательсвам стучи в скайп днем - рабремеся....

mebitek 29.11.2007 08:36

Кое что поделал!

http://i030.radikal.ru/0711/f7/4c7f38101e45.jpg

Стрелки победить немогу!

SeRiLLo 30.11.2007 00:14

Цитата:

Сообщение от mebitek (Сообщение 41303)
Стрелки победить немогу!

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 функции, поэтому перевести на любой язык проблем не будет

zlo 777 30.11.2007 02:44

ну для ниссаной это вообще не проблема. т.к. продается замечательная весч как Консалт

mebitek 30.11.2007 10:15

Цитата:

Вот как то так...быстренько набросал, поэтому не полное и могут быть коски естессно, но в общем ничего сложного по-моему в стрелках нет.
Это в коде C#.net, но тут одни Api функции, поэтому перевести на любой язык проблем не будет
Может кто перевел бы на Delphi , я был бы очень блогодарен!

2func 04.12.2007 11:33

да что тут в Дельфях писать то?????
если язык знаешь, то тебе все уже на блюдечке дали, чсамое ценное в этом вопросе было вот:
Цитата:

x0,y0 - координаты центра окружности
R-радиус окружности.
x.y - координаты текущего места на окружности, вычисляются по формуле (x-x0)^2+(y-y0)^2=R^2
дальше дело техники....

SeRiLLo 05.12.2007 00:17

да там пол текста - инициализация API функций и структур
SelectObject(IntPtr hDC, IntPtr hObject);
public struct POINT
public POINT(int x, int y)
MoveToEx(
IntPtr hdc,
int X,
int Y,
ref POINT lpPoint);
LineTo(
IntPtr hdc,
int nXEnd,
int nYEnd);.......

Единственно поправочка - вместо coredll.dll надо использовать естессно kernel32.dll :big: для взрослых виндов. Это всё я просто выдрал из своего кода, написанного под Windows CE.NET, а в сэешнике библиотеки другие ;)

2func 05.12.2007 11:46

кстати.... эээ а у меня трахометр до 8000 а на тойоте до 9000 :)

как там на счет приборов есть? заказать то можно?


Часовой пояс GMT +4, время: 04:15.

Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot