とある科学の備忘録

とある科学の備忘録

CやPythonのプログラミング、Arduino等を使った電子工作をメインに書いています。また、木製CNCやドローンの自作製作記も更新中です。たまに機械学習とかもやってます。

【C++/OpenGL】NO.4 イベント処理(Callback関数)一覧

プログラム 実行結果 解説 プログラム サンプルプログラムです。このプログラムにイベント処理の内容を付け加えただけです #include <GL/glew.h> #include <GLFW/glfw3.h> #include <Windows.h> #include <stdio.h> #include <iostream> GLint makeShader() { const char* vertex_shader = "#version 400\n" "in vec3</iostream></stdio.h></windows.h></glfw/glfw3.h></gl/glew.h>…

【C++/OpenGL】NO.3  複数の四角形表示

このページの内容 プログラム 実行結果 解説 複数のポリゴンを描画する 変更点1(GLfloat points[]) 変更点2(GLfloat colors[]) 変更点3(VBOのサイズ変更) 変更点4(glDrawArrays関数) 実行結果 このページの内容 前回はもっとも簡単なプログラムで三…

【C++/OpenGL】NO.2 プログラムの書き方編➀

前回のプログラム(緑色の三角形を表示するやつ)の解説その1です。 プログラム全文は前回の記事を見てください。 shizenkarasuzon.hatenablog.com OpenGLでポリゴンを表示するには以下のような手順が必要です GLFWとGLEW(またはGLAD)の初期設定 Windowの生…

【M5Stack】第5回 光センサーを使う→GPIOの使い方

M5Stackのライトセンサーユニットについて サンプルプログラム 実行結果 解説 GPIOの絶対最大定格などを調べる 初期設定 デジタル出力 アナログ出力 デジタル入力 アナログ入力 M5Stackのライトセンサーユニットについて 今回使うのは、これです↓ CdS(明る…

【C++/OpenGL】NO.1 OpenGLの仕組みと三角形表示

OpenGLとは OpenGLの仕組み(適当に解説) VBOとVAO 頂点シェーダ(Vertex Shader) フラグメントシェーダ(Fragment Shader) ラスタライズ スワップバッファ 深度バッファ OpenGLの座標の考え方 ViewPortとシザー矩形 GLSLとは プログラム 実行結果 OpenGLと…

【M5Stack】第7回 ToFセンサを使って物体との距離[mm]を計測

ToFセンサーとは TOFとは「Time Of Flight」の頭文字で、センサからパルス投光されたレーザがセンサ内の受光素子に戻ってくるまでの時間を計測し、その時間を距離に換算する測定方式です。 (https://www.optex-fa.jp/tech_guide/tof_special/ より) この記事…

【M5Stack】第4回 M5Stack Fire内蔵のIMU(MPU6886)を使って姿勢角算出

このブログでは姿勢角算出プログラムは4記事目です。【Arduino】MPU-6050を使って姿勢角を算出 (フィルターなし) - とある科学の備忘録【Raspberry Pi】MPU-6050を使って姿勢角算出(C言語編) - とある科学の備忘録 【Raspberry Pi】MPU-6050を使って姿勢…

【M5Stack】第3回 LCD下部のボタンの状態を取得する

この記事の内容 サンプルプログラム 実行結果 解説 ボタンの配線 この記事の内容 M5StackにはLCDの下に3つのボタンがあります。それぞれ左からBtnA、BtnB、BtnCという風にプログラムでは使います。 この記事では、この3つのボタンの状態を取得するプログラム…

【M5Stack】第二回 LCDの使い方 全集

LCDについて サンプルプログラム 実行結果 解説 LCDについて 事前準備 テキスト表示 日本語表示 図形を表示 指定の色でLCDを塗りつぶす ピクセル操作 四角形 三角形 円 線 QRコード作成 プログレスバー作成 色について 参考文献 LCDについて M5Stackには表面…

M5Stack Fire等開封→Arduino IDE環境構築→Hello World!

ひっさしぶりの投稿です!!!!! M5Stackが届いた! 中身一覧 M5Stack Fire (本体) UnitV ToFセンサー 光センサ(CdS) BALA(モーター&エンコーダー) ボタンスイッチ セットアップ USBドライバーのインストール Arduino IDEの設定 ボードマネージャの設…

【C++】OpenCV標準のスライダーを使用する

環境構築 サンプルプログラム 実行結果 環境構築 shizenkarasuzon.hatenablog.com サンプルプログラム # include <opencv2/opencv.hpp> # include <opencv2/highgui.hpp> # include <iostream> #define ESCAPE_KEY 27 void do_nothing(int size, void*){} void main() { cv::Mat img = cv::imread("C:/Users/Owne</iostream></opencv2/highgui.hpp></opencv2/opencv.hpp>…

【C++ dear ImGui】ドッキングパネルを作る

プロジェクト作成 実行結果 参考文献 C++のGUIフレームワークの一つである dear ImGUi を使ってドッキングパネルを作ります。自分用のメモとして書いています。ImGuiの通常のプロジェクト作成はこちら: shizenkarasuzon.hatenablog.com プロジェクト作成 ド…

【SQL】SQLのすすめ(Pythonのsqlite3使用)

SQLとMySQLとSQLiteとRDBMSについて サンプルプログラム 実行結果 基本操作 テーブルを作成 テーブルを削除する テーブルに要素を挿入する テーブルの要素を全て削除する 条件に合う要素を削除する 全ての要素を順番に取り出す 特定の要素を順番に取り出す …

【Python】スクリーンキャプチャ(mp4, avi, gif出力)

説明 タイトルの通りです。選択した範囲をスクリーンキャプチャして、動画ファイル(mp4, avi, gif)として出力します。 プログラムを起動すると、まず現在の画面をキャプチャしたWindowが現れるので、マウスをドラッグして録画領域を選択します。 ドラッグ…

【Python】Excelの表をはてな記法に変換するPythonスクリプト

タイトルの通り、Excelの表(複数の表もOK)をはてな記法の表( | と |* を使ったやつ)に変換するPythonプログラムを書いてみました。 二重for文をぶん回しているところもあって拙いコードですが......m(__)m プログラム 実行 プログラム import openpyxl a…

【C++ Win32】ファイルのドラッグ&ドロップ

ファイル(複数の場合もある)を Drag & Drop することで、そのファイルを取り込む機能(正確には Drag & Drop されたファイルのpathを取得する機能)を作ります サンプルプログラム 実行結果 サンプルプログラム ファイルが Drag & Drop されると、その場所…

【Python】エクスプローラーを使ってファイルを選択(tkinter使用)

内容 TkinterのGUI上で、特定のボタンを押したらエクスプローラーが開き、ファイルを選択できるようにします。 プログラム # -*- coding: utf-8 -*- import os, tkinter, tkinter.filedialog, tkinter.messagebox class MyApp1(tkinter.Frame): def __init__…

【C++ Win32API】マウスの処理の全て

サンプルプログラム 実行結果 解説 マウスを操作したときに発生するイベント マウスの現在位置(ウィンドウ内の相対座標)を取得する 方法1 方法2. マウスの現在位置(モニター左上からの絶対座標)を取得する マウスの位置をプログラムで変更する マウスの…

【C++ Win32】エディットボックスを作る

エディットコントロールというのは↓のようなものです 今回はこれを作ります。 実行結果 解説 1.CreateWindowEx関数でエディットボックスを作る WndProc関数を使った制御 テキストを取得 テキストをセットする スクロールバーを特定の位置にもっていく 入力で…

【C++ Win32】ボタンを作成する(通常ボタン、ラジオボタン、チェックボックス etc.)

最もシンプルなプログラム 実行結果 解説 1.ボタンの作成 2.ボタンの有効化/無効化 3. ボタンの文字のフォントを設定 4. ボタンの文字の色/文字の背景色を変更 5.ボタンの状態を取得する 6.ボタンの状態を変更 最もシンプルなプログラム ボタンをクリックし…

【C++ Win32】Windowsアプリケーションを作る!(Win32 APIシリーズ第一回)

1.CUIとGUI 開発環境 実際に作ってみる プロジェクトの作成 プログラム 実行結果 解説 Windows Applicationの基本動作 Windowクラスの登録(RegisterClassEx関数とWNDCLASSEX構造体) hInstance style hbrBackground hIconとhIconSm Windowの作成(CreateWin…

【C++】Dear ImGui を導入してみた(Visual Studio 2015)

Dear ImGuiとは 開発環境 導入方法 Step 1. Step 2. Step 3. Step 4. 完了 Dear ImGuiとは Dear ImGuiとはGUIのFrameworkの一種で、DirectXやOpenglをもとに動いています。ImGUI以外にもGUIのフレームワークは色々あるのですが(このサイトやこのサイトにと…

【C++/OpenCV】動画のプレイヤーを作成する

ん? cv::VideoCapture()を使えばいいじゃないかって? そうなんだけど、そうなんですけど......。とりあえず読んでください。 サンプルプログラム 改良(音声再生) pszSound hmod fdwSound 問題1(スピード調整) 問題2(処理性能の問題) cap >> frame と…

【C++ OpenCV】VisualStudio 2015で、C++ & OpenCVの環境構築

1. OpenCVをダウンロードする 2. 新規プロジェクトの作成 3. OpenCV用の設定 4. サンプルプログラム 4. 実行 5. エラーとその対処法 1. OpenCVをダウンロードする 以下のサイトから好きなフォルダにOpenCVをダウンロードします。 https://opencv.org/release…

【C++ Win32】WndProc関数含め、WIN32APIアプリケーションのクラス化

今回は、タイトルの通り、Win32 APIを使ったアプリケーションをクラスを使って書こう、という記事です。問題点が、「static」なのです!! イベントを処理する関数を作っても、lpfnWndProc に代入して関連付けできるのはstaticな関数だけなのです。そして、…

【C++ Win32】文字の描画とフォントの作成(Win32 APIシリーズ第2回)

目標 プログラム① 実行結果 解説 TextOut関数 デバイスコンテキストとは デバイスコンテキストの利点 背景色と文字色の設定 フォントの設定 nWeightについて nCharSetについて nEscapementとnOrientationについて nQualityについて nPitchAndFamilyについて …

【C++】文字テクスチャ

const GLubyte font_array[] = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,…

映像制作

AviUtl Davinch Resolve 動画たち AviUtlという無料動画編集ソフトを使って動画編集を行っています。 AviUtl 【AviUtl】AviUtlでGIFアニメーションでエンコードする方法 - とある科学の備忘録 Davinch Resolve 特に記事はありません 動画たち AviUtlで個人的…

Visual Studio Community 2019 のインストール

VisualStudio とは Visual Studio Community Visual Studio Professional Visual Studio Test Professional Visual Studio Code Visual Studio Enterprise Visual Studioをインストール 2.パッケージの選択 VisualStudio とは VisualStudio2017(略称:VS)…

【C++】Visual Studio 2019 に OpenSiv3D を導入する

OpenSiv3Dとは 開発環境(この記事) 開発環境(必要最低限) Visual StudioにC++の開発環境を整える Siv3Dの導入 開発環境を整える サンプルプロジェクトを作成→実行 参考文献 OpenSiv3Dとは OpenSiv3Dとは、C++ で楽しく簡単にゲームやメディアアートを作…