Форум программистов, компьютерный форум CyberForum.ru

Работа с потоками - C++

Восстановить пароль Регистрация
 
Slafira
1 / 1 / 0
Регистрация: 18.10.2010
Сообщений: 113
17.10.2011, 05:14     Работа с потоками #1
Всем привет.
Задание такое: Реализовать программу запускающую в разных потоках подпрограммы прорисовки отрезков прямых. В одной подпрограмме реализовать алгоритм Брезенхейма, во второй простейший алгоритм построения отрезка прямой. Координаты концов отрезков определяются случайным образом в обоих случаях, но каждая подпрограмма рисует отрезки в своих прямоугольных областях.

Есть алгоритмы построения отрезков. Всё вообщем-то есть.

Не могу это организовать.

Ну не знаю что где написать, чтобы в Image рисовались отрезки по этим алгоритмам.
Создала пока форму и два имэджа на ней.
И код пока такой написала:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
#include <process.h>
#include "Unit1.h"
#include <conio.h>
#include <stdio.h>
#include <time.h>
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
 
 void drawLine(int x1, int y1, int x2, int y2)
{
    int deltaX = abs(x2 - x1);
    int deltaY = abs(y2 - y1);
    int signX = x1 < x2 ? 1 : -1;
    int signY = y1 < y2 ? 1 : -1;
    int error = deltaX - deltaY;
    void setPixel(
    int x1,
    int y1)  ;
    for (;;)
    {
        setPixel(x1, y1);
 
        if(x1 == x2 && y1 == y2)
            break;
 
        int error2 = error * 2;
 
        if(error2 > -deltaY)
        {
            error -= deltaY;
            x1 += signX;
        }
 
        if(error2 < deltaX)
        {
            error += deltaX;
            y1 += signY;
        }
    }
}
 
   void line(int x1, int y1, int x2, int y2)
{       void setPixel(
    int x1,
    int y1)  ;
double k = ((double)(y2 - y1)) / (x2 - x1);
double y = y1;
for (int x = x1; x <= x2; x++, y += k)
setPixel(x, (int)y);
}
 int a[ 5 ];
 
  void Thread( void* pParams )
  { int x1 = 2 + rand() %7;
    int x2 = 2 + rand() %7;
    int y1 = 2 + rand() %7;
    int y2 = 2 + rand() %7;
   line(x1, y1, x2, y2);
  }
 
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
 
//Image1->Canvas->LineTo(rand()%Image1->Height,rand()%Image1->Width);
 
//Image2->Canvas->LineTo(rand()%Image1->Height,rand()%Image1->Width);
}
//------------------------------------
Не знаю как сформулировать вопрос, помогите плиз доделать чтоб было по заданию

Добавлено через 1 час 3 минуты
Ну ответьте пож кто-нибудь хоть что-нибудь
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.10.2011, 05:14     Работа с потоками
Посмотрите здесь:

C++ Работа с потоками
C++ работа с потоками
Работа с потоками. C++
C++ Работа с потоками
C++ Работа с потоками
Работа с потоками C++
C++ Работа с файловыми потоками
C++ Работа с потоками

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 15:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru