Open Source
Кидайте пожалуйста сюда линки на Опен СОрсе СПО. Именно на исходным кодом программ. Желательно прог конечно связанных со звуком.
С пояснениями для Быдлокодеров % )
Начнём новую эру освоения компьютера для того чтоб подготовиться к эпохе наноимплантантов и Робототехники.
Кибоги должны уметь владеть простейшими кодами программирования своей оболочки растекающейся по комнате и\или землянке в лесу.
Я начну с первой попавшейся только что откопавшейся в интернете с поисковика проги
Фрактал-генератор (FGen) ver 0.01beta
Компилятор: C++ Builder 5
http://www.sources.ru/builder/fgen.shtml
Программа рисует на экране один из самых простых фракталов - множество Манедельброта. Используется реккурентная формула Z[i+1]=Z[i]*Z[i]+C, где Z,C - комплексные числа. С - текущая точка для которой расчитывается цвет. Вычисления ведутся до тех пор, пока |Z| меньше заданного значения, количество итераций принимается за цвет точки.
Код расчета вынесен в отдельный поток TCalcThread, что позволяет сделать программу более управляемой. Предусмотрено сохранение картинки в файл JPG, GIF или BMP, увеличение и уменьшение, изменение палитры. Поскольку расчет занимает некоторое время, несколько секунд, введен индикатор выполнения. Можно приостановить расчет, затем вновь его продолжив. Кнопка сброс устанавливает исходный размер фрактала (не пересчитывая его заново).
http://www.sources.ru/builder/fgen.rar
Вот из двух файлов исходный код
из thread.h
- Спойлер:
//---------------------------------------------------------------------------
#ifndef ThreadH
#define ThreadH
//---------------------------------------------------------------------------
#include <Classes.hpp>
//---------------------------------------------------------------------------
typedef void __fastcall (__closure *TMyProgressEvent)(double);
class TCalcThread : public TThread
{
private:
Graphics::TBitmap* Map;
//границы области фрактала
double xmin;
double ymin;
double xmax;
double ymax;
//процент завершения
double Progress;
//максимальное количество итераций
int MaxIter;
//палитра, число, на которое умножается число итераций для конкретной точки области фрактала
int Pallete;
protected:
void __fastcall Execute();
public:
//истина, если идет расчет
bool Active;
__fastcall TCalcThread(Graphics::TBitmap* aMap, double _xmin, double _ymin, double _xmax, double _ymax,int aMaxIter,int aPallete);
TMyProgressEvent OnProgress;//эта функция вызывается из Execute используется для отображения прцента выполнения
};
//---------------------------------------------------------------------------
#endif
и из
main.h
- Спойлер:
//---------------------------------------------------------------------------
#ifndef MainH
#define MainH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ExtCtrls.hpp>
#include "CGAUGES.h"
#include <Menus.hpp>
#include <ComCtrls.hpp>
#include <ToolWin.hpp>
#include <ImgList.hpp>
#include <Dialogs.hpp>
#include <ExtDlgs.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published: // IDE-managed Components
TPaintBox *PaintBox;
TMainMenu *MainMenu1;
TMenuItem *mFile;
TMenuItem *mSave;
TMenuItem *N4;
TMenuItem *mStart;
TMenuItem *mStop;
TMenuItem *mReset;
TStatusBar *StatusBar;
TPanel *Panel1;
TToolBar *ToolBar1;
TImageList *ImageList1;
TSavePictureDialog *SavePictureDialog;
TToolButton *ToolButton1;
TToolButton *ToolButton2;
TToolButton *StartButton;
TToolButton *StopButton;
TToolButton *ResetButton;
TCGauge *Gauge;
TToolButton *ToolButton6;
TMenuItem *mAbout;
TMenuItem *N1;
TToolButton *ZoomIn;
TToolButton *ZoomOut;
TTrackBar *IterBar;
TLabel *IterLabel;
TScrollBar *PalScroll;
TMenuItem *N2;
TMenuItem *N3;
TMenuItem *N5;
TMenuItem *N6;
TMenuItem *N7;
void __fastcall FormCreate(TObject *Sender);
void __fastcall PaintBoxPaint(TObject *Sender);
void __fastcall StartButtonClick(TObject *Sender);
void __fastcall StopButtonClick(TObject *Sender);
void __fastcall mStartClick(TObject *Sender);
void __fastcall mStopClick(TObject *Sender);
void __fastcall ResetButtonClick(TObject *Sender);
void __fastcall mResetClick(TObject *Sender);
void __fastcall mSaveClick(TObject *Sender);
void __fastcall ToolButton1Click(TObject *Sender);
void __fastcall N1Click(TObject *Sender);
void __fastcall ZoomInClick(TObject *Sender);
void __fastcall ZoomOutClick(TObject *Sender);
void __fastcall IterBarChange(TObject *Sender);
void __fastcall N6Click(TObject *Sender);
void __fastcall N7Click(TObject *Sender);
void __fastcall N2Click(TObject *Sender);
void __fastcall N3Click(TObject *Sender);
private:
void __fastcall Progress(double Percent);
void __fastcall ThreadDone(TObject* Sender);
double x0,y0,x1,y1;
void UpdateStatus();
public: // User declarations
void Reset();
__fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
Компилятор: C++ Builder 5
то есть код написан на Языке Си ++
В ахиве ещё куча файлов, всё что это значит я не понимаю. Но пойму - ибо это легко % )
ЧТоб понять нужно Луркать! Гуглить тоже можно % )