0 / 0 / 1
Регистрация: 24.10.2011
Сообщений: 39
|
|
1 | |
Как нарисовать геометрические фигуры11.06.2013, 04:09. Показов 4942. Ответов 4
Метки нет (Все метки)
Помогите нарисовать геометрические фигуры (например треугольник,круг) в библиотеке dll.
Пока что реализовал квадрат или прямоугольник с помощью DrawBox Код
DrawBox( int x, int y, int w, int h, D3DCOLOR BoxColor, IDirect3DDevice9* pDevice ) Код
struct CUSTOMVERTEX {FLOAT X, Y, Z, RHW; DWORD COLOR;}; #define CUSTOMFVF (D3DFVF_XYZRHW | D3DFVF_DIFFUSE) CUSTOMVERTEX vertices[] = { { 0.0f, 0.0f, 0.5f, 1.0f, D3DCOLOR_XRGB(255, 0, 0) }, { 1024.0f, 0.0f, 0.5f, 1.0f, D3DCOLOR_XRGB(0, 0, 255) }, { 1024.0f, 400.0f, 0.5f, 1.0f, D3DCOLOR_XRGB(255, 0, 0) }, { 0.0f, 0.0f, 0.5f, 1.0f, D3DCOLOR_XRGB(255, 0, 0) }, { 1024.0f, 400.0f, 0.5f, 1.0f, D3DCOLOR_XRGB(255, 0, 0) }, { 0.0f, 400.0f, 0.5f, 1.0f, D3DCOLOR_XRGB(255, 0, 0) } };
0
|
11.06.2013, 04:09 | |
Ответы с готовыми решениями:
4
с++ нарисовать геометрические фигуры Нарисовать 2 геометрические фигуры Нарисовать указанные геометрические фигуры с учетом видимых и невидимых линий, обозначив вершины Как узнать пересекаются ли геометрические фигуры? |
Заблокирован
|
|||||||||||
11.06.2013, 10:39 | 2 | ||||||||||
С чего ты взял? Может для начала стоит отодвинуть камеру подальше, например так:
Может у тебя рисуются индекстный прямоугольники, а тип стоит TRIANGLELIST или наоборот? В общем код в студию!
0
|
23 / 23 / 3
Регистрация: 15.12.2012
Сообщений: 314
|
|
11.06.2013, 12:45 | 3 |
Да, покажи хотя бы часть кода отрисовки и думаю все станет ясно, но учитывая что такие большие координаты точек, стоит установить перспективу и матрицу вида как говорит FarStar, только вот не понимаю почему используется префикс XM_, кажется должны быть D3DXMatrix, D3DXVECTOR3 Eye и т.д. Это пользовательский тип или какая-то библиотека типо XNA ?
0
|
0 / 0 / 1
Регистрация: 24.10.2011
Сообщений: 39
|
|
13.06.2013, 14:29 [ТС] | 4 |
Код
LineBuilder::LineBuilder(IDirect3DDevice9* Device) { D3DXCreateLine(Device , &oLine); } void LineBuilder::DrawCircle(int X, int Y, int radius, int numSides, D3DCOLOR Color) { D3DXVECTOR2 Line[128]; float Step = 3.14159265358979323846f * 2.0 / numSides; int Count = 0; for (float a=0; a < 3.14159265358979323846f * 2.0; a += Step) { float X1 = radius * cos(a) + X; float Y1 = radius * sin(a) + Y; float X2 = radius * cos(a+Step) + X; float Y2 = radius * sin(a+Step) + Y; Line[Count].x = X1; Line[Count].y = Y1; Line[Count+1].x = X2; Line[Count+1].y = Y2; Count += 2; } this->oLine->Begin(); this->oLine->Draw(Line,Count,Color); this->oLine->End(); } Код
if(cItem.test) { MenuBox->DrawCircle(20,40,20,10,RED); } ----------------------------------------------------- операц система windows 8 64 bit
0
|
0 / 0 / 1
Регистрация: 24.10.2011
Сообщений: 39
|
|
19.06.2013, 19:12 [ТС] | 5 |
удалите тему, толка нет от нее.
0
|
19.06.2013, 19:12 | |
19.06.2013, 19:12 | |
Помогаю со студенческими работами здесь
5
Как рисовать элементарные геометрические фигуры? Геометрические фигуры Геометрические фигуры Геометрические фигуры Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |