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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 26, средняя оценка - 4.85
Temirlan90
132 / 132 / 8
Регистрация: 30.09.2010
Сообщений: 333
#1

Синусоида. - C++

04.10.2011, 14:30. Просмотров 3624. Ответов 4
Метки нет (Все метки)

Написать программу чтобы в консоле рисовала синусоиду, при определенных входящих данных.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.10.2011, 14:30
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Синусоида. (C++):

Синусоида - Pascal
помогите написать в Паскале синусуиду через цикл...

Синусоида - Delphi
В окне PaintBox с левой стороны до правой стороны образуется синусоида, которая равномерно передвигается в окне в указанном пользователем...

Синусоида! - MS Excel
Привет! Есть вот такой график! нужно вписать в него синусоиду! какой функцией задать, чтобы построилась выделенная красным маркером...

синусоида QML+C++ - C++ Qt
Здравствуйте, может кто знает как сделать так: у меня есть область (toch) в которой я хочу нарисовать синусоиду, я испускаю сигнал...

Синусоида IR2101 - Блоки питания
Интересно, а в реальности эта схема будет такую же осциллограмму выдавать?

Синусоида OpenGl - OpenGL
Недавно столкнулся с OpenGL и решил нарисовать трехмерную синусоиду в пространстве X Y Z. Знаю что нужно реализовать сначала массив далее...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Jupiter
Каратель
Эксперт С++
6553 / 3973 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
04.10.2011, 14:42 #2
ввод параметров сам напишешь
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <Windows.h>
#include <stdlib.h>
#include <math.h>
 
int main(void)
{
    HWND hWnd = GetConsoleWindow();
    HDC hDC = GetDC(hWnd);
    HPEN Pen = CreatePen(PS_SOLID, 2, RGB(255, 255, 255));
    SelectObject(hDC, Pen);
    MoveToEx(hDC, 0, 85, NULL);
    LineTo(hDC, 200, 85);
    MoveToEx(hDC, 100, 0, NULL);
    LineTo(hDC, 100, 170);
    for (float x = -8.0f; x <= 8.0f; x += 0.01f) // O(100,85) - center
    {
        MoveToEx(hDC, 10*x+100, -10*sin(x)+85, NULL);//10 - scale
        LineTo(hDC, 10*x+100, -10*sin(x)+85);
     }
     system("pause");
     ReleaseDC(hWnd, hDC);
     return 0;
}
Temirlan90
132 / 132 / 8
Регистрация: 30.09.2010
Сообщений: 333
04.10.2011, 15:15  [ТС] #3
Как рисунок в центр сдвинуть, а в углу вводились данные? под вводом выводилась таблица значений... ??

Добавлено через 19 минут
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
#define _WIN32_WINNT 0x0501
#include <windows.h>
#include <time.h>
#include <wincon.h>
#include <iostream>
#include <iomanip>
#include <math.h>
using namespace std;
BOOL Line(HDC hdc, int x1, int y1, int x2, int y2){
    MoveToEx(hdc, x1, y1, NULL); 
    return LineTo(hdc, x2, y2);
} 
int main() {
    int x = 400;
    int y = 150;
    double a = 1;
    int b = 2;
    srand (time(NULL));
    HWND hWnd = GetConsoleWindow();
    HDC hDc = GetDC(hWnd);
    int red = 255;
    int green = 255;
    int blue = 255;
    COLORREF color = RGB(red, green, blue);     
    HPEN pen = CreatePen(PS_SOLID, 1, color);
    SelectObject(hDc, pen);
    Line(hDc, x, 0, x, 2 * y);
    Line(hDc, 200, y, 2 * x, y);    
    COLORREF c2 = red;
    SetPixel(hDc, x + 1, 2, red);
    SetPixel(hDc, x + 2, 3, color);
    SetPixel(hDc, x + 3, 4, color);
    SetPixel(hDc, x - 1, 2, color);
    SetPixel(hDc, x - 2, 3, color);
    SetPixel(hDc, x - 3, 4, color);
    SetPixel(hDc, 2 * x - 2, y - 1, color);
    SetPixel(hDc, 2 * x - 3, y - 2, color);
    SetPixel(hDc, 2 * x - 4, y - 3, color);
    SetPixel(hDc, 2 * x - 2, y + 1, color);
    SetPixel(hDc, 2 * x - 3, y + 2, color);
    SetPixel(hDc, 2 * x - 4, y + 3, color);
    for(int i = 200; i < 600; i += 50) {
        Line(hDc, i, y - 2, i, y + 2);
    }
    for(int i = 0; i < y * 2; i += 50){
        Line(hDc, x - 2, i, x + 2, i);
    }   
    cout << "function: Y = sin(x) \t\t\t\ty\n\n";
    cout << "|y\t|x\t|\n";
    cout << "|_______________|\n";
    for(double i = -5; i <= 5; i++) {
        double j = 1 / i;
        cout << fixed << setprecision(3) << "|" << j << "\t|" << i << "\t|\n";
    }   
    HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
    COORD pos = {48, 7};
    SetConsoleCursorPosition(hConsole, pos);
    cout << 1;
    COORD pos1 = {56,11};
    SetConsoleCursorPosition(hConsole, pos1);
    cout << 1 << "                      x";
    for(double x1 = -30; x1 < 5; x1 += 0.0001) {
        int y1 = sin(x1) * 50;
        SetPixel(hDc, x1 * 5 + x + 63, y - y1, red);
    }
    int asd;
    cin >> asd; 
    ReleaseDC(hWnd, hDc);
    return 0;   
}
как то так, а как теперь перекрасить в белый фон и синий шрифт???
talis
04.10.2011, 15:31
  #4

Не по теме:

Jupiter, брутально вы бы ещё бы перехватили коллбэк и дочерние окна-кнопки пририсовали, ага

Temirlan90
132 / 132 / 8
Регистрация: 30.09.2010
Сообщений: 333
04.10.2011, 15:47  [ТС] #5
Вот сделал...
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
#define _WIN32_WINNT 0x0501
#include <windows.h>
#include <time.h>
#include <wincon.h>
#include <iostream>
#include <iomanip>
#include <math.h>
using namespace std;
BOOL Line(HDC hdc, int x1, int y1, int x2, int y2){
    MoveToEx(hdc, x1, y1, NULL); 
    return LineTo(hdc, x2, y2);
} 
int main() {
    int x = 400;
    int y = 150;    
    srand (time(NULL));
    HWND hWnd = GetConsoleWindow();
    HDC hDc = GetDC(hWnd);  
    COLORREF color = RGB(255, 255, 255);    
    HPEN pen = CreatePen(PS_SOLID, 1, color);
    SelectObject(hDc, pen);
    cout << "FUNCTION : Y = Sin(X)\n\n";
    cout << "*****************\n";
    cout << "*   x   |   y   *\n";
    cout << "*****************\n";
    for(double i = -5, j = 1/i; i <= 5; ++i) {
        cout << fixed << setprecision(3) << "|";
        (i < 0) ? cout << i << "\t|" << j << "\t|\n"
            : cout << " " << i << "\t|" << j << "\t|\n";
    }
    cout << "*****************\n";  
    for(int i = 0; i < 300; ++i)
        Line(hDc, 200, i, 650, i);
    color = RGB(0, 0, 0);
    for(double x1 = 0; x1 < 280; x1 += 0.001) 
        SetPixel(hDc, 400, 10 + x1, color);
    for(double x1 = 0; x1 < 300; x1 += 0.001) 
        SetPixel(hDc, 250 + x1, 150, color);    
    for(double x1 = -30; x1 < 5; x1 += 0.001){
        int y1 = sin(x1) * 50;
        SetPixel(hDc, x1 * 5 + x + 63, y - y1, color);
    }
    system("pause >> 0");
    return 0;   
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.10.2011, 15:47
Привет! Вот еще темы с ответами:

экг и синусоида - MathCAD
даны значения экг в блокноте, строим график распределения по второму столбцу файла в блокноте,далее построил синусоиду,надо приплюсовать...

Замедленная синусоида - Delphi
Добрый вечер. Хелпаните с прогой самому разбираться времени нет, а нужно к завтра уже сделать. собственно говоря задача такова 1. Создать...

График (синусоида) - C#
Подскажите как на шарпе нарисовать график, замечательно будет если у кого-то готовый код есть. Заранее спасибо!

Синусоида: анимация - Delphi
Здравствуйте! У меня есть прогрмма которая просто рисует синусоиду, при этом можно с клавиатуры вводить параметры графика (высота, длина,...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
04.10.2011, 15:47
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru