some updates
This commit is contained in:
parent
4de5f2bcd6
commit
6be60df0a1
BIN
img/analysis_3/Torricelli-Probleme.png
Normal file
BIN
img/analysis_3/Torricelli-Probleme.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 41 KiB |
@ -67,7 +67,10 @@ Diese Dokumentation ist primär für eine Linux-Umgebung ausgelegt. Windows-spez
|
|||||||
#include "src/informatik_3.typ"
|
#include "src/informatik_3.typ"
|
||||||
#pagebreak()
|
#pagebreak()
|
||||||
|
|
||||||
= Photonics
|
= Bildverarbeitung
|
||||||
|
#include "src/bildverarbeitung_1.typ"
|
||||||
|
#include "src/bildverarbeitung_2.typ"
|
||||||
|
#include "src/bildverarbeitung_3.typ"
|
||||||
#pagebreak()
|
#pagebreak()
|
||||||
|
|
||||||
= Physik
|
= Physik
|
||||||
@ -82,6 +85,9 @@ Diese Dokumentation ist primär für eine Linux-Umgebung ausgelegt. Windows-spez
|
|||||||
#include "src/elektronik_3.typ"
|
#include "src/elektronik_3.typ"
|
||||||
#pagebreak()
|
#pagebreak()
|
||||||
|
|
||||||
|
= Photonics
|
||||||
|
#pagebreak()
|
||||||
|
|
||||||
= Optische Messtechnik
|
= Optische Messtechnik
|
||||||
#include "src/optische_messtechnik.typ"
|
#include "src/optische_messtechnik.typ"
|
||||||
#pagebreak()
|
#pagebreak()
|
||||||
|
|||||||
@ -70,12 +70,12 @@ fill: (x, y) => if y == 0 {gray.lighten(40%)},
|
|||||||
==== Statische lösung
|
==== Statische lösung
|
||||||
Möchte man z.b. für $y^' eq 3x^2y plus x^2$ die Statische Lösung so muss man $y^'$ mit 0 ersetzen so das gilt:
|
Möchte man z.b. für $y^' eq 3x^2y plus x^2$ die Statische Lösung so muss man $y^'$ mit 0 ersetzen so das gilt:
|
||||||
#grid(columns: (1fr, 1fr), gutter: 10pt, [
|
#grid(columns: (1fr, 1fr), gutter: 10pt, [
|
||||||
$ 0 eq 3x^2y plus x^2 $
|
$ 0 eq 3x^2y plus x^2 \
|
||||||
$ 0 eq x^2 dot (3y plus 1) $
|
0 eq x^2 dot (3y plus 1) \
|
||||||
$ 0 eq 3y plus 1 $
|
0 eq 3y plus 1 \
|
||||||
$ -1 eq 3y $
|
-1 eq 3y \
|
||||||
$ minus frac(1, 3) eq y $
|
minus frac(1, 3) eq y \
|
||||||
$ y(x) eq minus frac(1, 3) $
|
y(x) eq minus frac(1, 3) $
|
||||||
], [
|
], [
|
||||||
Da $x^2$ einen belibigen Wert haben kann kann es ausgeschlossen werden da logischerweise der rest also $0 eq 3y plus 1$ sein muss.
|
Da $x^2$ einen belibigen Wert haben kann kann es ausgeschlossen werden da logischerweise der rest also $0 eq 3y plus 1$ sein muss.
|
||||||
])
|
])
|
||||||
@ -83,23 +83,38 @@ Da $x^2$ einen belibigen Wert haben kann kann es ausgeschlossen werden da logisc
|
|||||||
|
|
||||||
==== Nicht Statische lösung
|
==== Nicht Statische lösung
|
||||||
#grid(columns: (1fr, 1fr), gutter: 10pt, [
|
#grid(columns: (1fr, 1fr), gutter: 10pt, [
|
||||||
$ y^' eq x^2 dot y $
|
$ y^' eq x^2 dot y \
|
||||||
$ frac(1, y) dot y^' eq x^2 $
|
frac(1, y) dot y^' eq x^2 \
|
||||||
$ integral frac(1, y) dot y^' dot "dx" eq integral x^2 dot "dx" $
|
integral frac(1, y) dot y^' dot "dx" eq integral x^2 dot "dx" \
|
||||||
$ integral frac(1, y) dot "dy" eq integral x^2 dot "dx" $
|
integral frac(1, y) dot "dy" eq integral x^2 dot "dx" \
|
||||||
$ ln(abs(y)) eq frac(1, 3) dot x^3 + c $
|
ln(abs(y)) eq frac(1, 3) dot x^3 + c \
|
||||||
$ abs(y) eq e^(frac(1, 3) dot x^3 + c) eq e^c dot e^(frac(1, 3) dot x^3) $
|
abs(y) eq e^(frac(1, 3) dot x^3 + c) eq e^c dot e^(frac(1, 3) dot x^3) \
|
||||||
$ y(x) eq plus.minus e^c dot e^(frac(1, 3) dot x^3) eq C dot e^(frac(1, 3) dot x^3) "mit" C in RR \\ {0} $
|
y(x) eq plus.minus e^c dot e^(frac(1, 3) dot x^3) eq C dot e^(frac(1, 3) dot x^3) "mit" C in RR \\ {0} $
|
||||||
], [
|
], [
|
||||||
- $y^' eq frac("dy", "dx")$
|
- $y^' eq frac("dy", "dx")$
|
||||||
- $integral frac(1, y) dot "dy" eq ln(abs(y))$
|
- $integral frac(1, y) dot "dy" eq ln(abs(y))$
|
||||||
|
|
||||||
])
|
|
||||||
|
|
||||||
#table(columns: (0.5fr, 1fr),
|
#table(columns: (0.5fr, 1fr),
|
||||||
[$C_1$, $C_2$], [Entsthun beim Integrieren],
|
[$C_1$, $C_2$], [Entsthun beim Integrieren],
|
||||||
[$c$], [$c eq C_2 - C_1$],
|
[$c$], [$c eq C_2 - C_1$],
|
||||||
[$C$], [$C eq -c$],
|
[$C$], [$C eq -c$],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
])
|
||||||
|
|
||||||
|
=== Torricelli-Probleme
|
||||||
|
#image("../img/analysis_3/Torricelli-Probleme.png", width: 100%)
|
||||||
|
|
||||||
|
Ausflussgeschwindigkeit $v eq root(, 2 dot g dot h)$ \
|
||||||
|
Volumen-Fluss $Q eq A dot v$ \
|
||||||
|
$
|
||||||
|
V^' (t) eq Q_i (t) minus Q_a (t) \
|
||||||
|
A dot h(t) eq Q_i (t) - A_a dot root(, 2 dot g dot h(t)) \
|
||||||
|
h^' (t) eq frac(Q_i, A) minus frac(A_a, A) dot root(, 2 dot g dot h)
|
||||||
|
$
|
||||||
|
|
||||||
|
$ cases(
|
||||||
|
"OED: " h^' (t) &eq frac(Q_i, A) minus frac(A_a, A) dot root(, 2 dot g dot h) \
|
||||||
|
"IC: " h(t_0) &eq h_0
|
||||||
|
) $
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -241,6 +241,30 @@ Falls in einer gui umgebung gearbeitet wird gibt es dafür schaltflächen, aber
|
|||||||
[$omega$], [```typ $omega$ ```],
|
[$omega$], [```typ $omega$ ```],
|
||||||
)
|
)
|
||||||
])
|
])
|
||||||
|
|
||||||
|
== Farben
|
||||||
|
#table(columns: (1fr,) * 9, gutter: 6pt, align: (center + horizon), stroke: none,
|
||||||
|
table.cell(fill: black)[#text(fill: white)[black]],
|
||||||
|
table.cell(fill: gray)[gray],
|
||||||
|
table.cell(fill: silver)[silver],
|
||||||
|
table.cell(fill: white, stroke: black)[white],
|
||||||
|
table.cell(fill: navy)[#text(fill: white)[navy]],
|
||||||
|
table.cell(fill: blue)[blue],
|
||||||
|
table.cell(fill: aqua)[aqua],
|
||||||
|
table.cell(fill: teal)[teal],
|
||||||
|
table.cell(fill: eastern)[eastern],
|
||||||
|
table.cell(fill: purple)[#text(fill: white)[purple]],
|
||||||
|
table.cell(fill: fuchsia)[fuchsia],
|
||||||
|
table.cell(fill: maroon)[maroon],
|
||||||
|
table.cell(fill: red)[red],
|
||||||
|
table.cell(fill: orange)[orange],
|
||||||
|
table.cell(fill: yellow)[yellow],
|
||||||
|
table.cell(fill: olive)[olive],
|
||||||
|
table.cell(fill: green)[green],
|
||||||
|
table.cell(fill: lime)[lime],
|
||||||
|
)
|
||||||
|
Alternativ kann auch einfach `rgb("#001f3f")` verwendet werden.
|
||||||
|
|
||||||
== cetz
|
== cetz
|
||||||
importieren:
|
importieren:
|
||||||
```typ
|
```typ
|
||||||
|
|||||||
76
src/bildverarbeitung_1.typ
Normal file
76
src/bildverarbeitung_1.typ
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
|
||||||
|
== opencv
|
||||||
|
=== install opencv
|
||||||
|
```sh
|
||||||
|
sudo pacman -S opencv hdf5 vtk
|
||||||
|
```
|
||||||
|
|
||||||
|
=== einfaches fenster
|
||||||
|
#table(columns: 1fr, [```cpp
|
||||||
|
#include <opencv2/opencv.hpp>
|
||||||
|
int main(){
|
||||||
|
cv::Mat img = cv::Mat(cv::Size(800, 600), CV_8UC3, cv::Scalar(255, 255, 255));
|
||||||
|
|
||||||
|
// code
|
||||||
|
|
||||||
|
cv::imshow("Image", img);
|
||||||
|
cv::waitKey(0);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
```])
|
||||||
|
|
||||||
|
=== vorlage zentriert
|
||||||
|
#table(columns: 1fr, [```cpp
|
||||||
|
#include <opencv2/opencv.hpp>
|
||||||
|
cv::Mat create_window(std::string name){
|
||||||
|
int screen_width = 2560;
|
||||||
|
int screen_height = 1600;
|
||||||
|
int window_width = 800;
|
||||||
|
int window_height = 600;
|
||||||
|
|
||||||
|
cv::Mat img = cv::Mat(cv::Size(window_width, window_height), CV_8UC3, cv::Scalar(255, 255, 255));
|
||||||
|
|
||||||
|
cv::namedWindow(name, cv::WINDOW_AUTOSIZE);
|
||||||
|
cv::moveWindow(name, (screen_width - window_width) / 2, (screen_height - window_height) / 2);
|
||||||
|
|
||||||
|
return img;
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(){
|
||||||
|
cv::Mat img = create_window("Image");
|
||||||
|
|
||||||
|
// code
|
||||||
|
|
||||||
|
cv::imshow("Image", img);
|
||||||
|
while (1){
|
||||||
|
char key = cv::waitKey(0);
|
||||||
|
if (key == 27){ // ESC
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
```])
|
||||||
|
|
||||||
|
=== line
|
||||||
|
#table(columns: 1fr, [```cpp
|
||||||
|
cv::line(img, cv::Point(40, 40), cv::Point(60, 40), cv::Scalar(255, 255, 0), 10);
|
||||||
|
```])
|
||||||
|
#table(columns: (1fr, 1fr),
|
||||||
|
[img], [Zeichen fläche (`cv::Mat`)],
|
||||||
|
[cv::Point(40, 40)], [Startpunkt],
|
||||||
|
[cv::Point(60, 40)], [Endpoint],
|
||||||
|
[cv::Scalar], [Farbe in BRG],
|
||||||
|
[10], [Linienbreite],
|
||||||
|
)
|
||||||
|
|
||||||
|
=== circle
|
||||||
|
#table(columns: 1fr, [```cpp
|
||||||
|
cv::circle(img, cv::Point(10, 10), 20, cv::Scalar(0, 0, 128), 30);
|
||||||
|
```])
|
||||||
|
#table(columns: (1fr, 1fr),
|
||||||
|
[img], [Zeichen fläche (`cv::Mat`)],
|
||||||
|
[cv::Point(10, 10)], [Mittelpunkt],
|
||||||
|
[cv::Scalar], [Farbe in BRG],
|
||||||
|
[30], [Linienbreite (-1 für geffülter Kreis],
|
||||||
|
)
|
||||||
0
src/bildverarbeitung_2.typ
Normal file
0
src/bildverarbeitung_2.typ
Normal file
0
src/bildverarbeitung_3.typ
Normal file
0
src/bildverarbeitung_3.typ
Normal file
@ -299,7 +299,41 @@ Jitter bezeichnet eine nicht gerade Flanke, sondern eine, die wie in der Abbildu
|
|||||||
==== TCP/IP
|
==== TCP/IP
|
||||||
|
|
||||||
==== Sockets
|
==== Sockets
|
||||||
==== HTTP/HTML, JS/Web-Programmierung
|
|
||||||
|
==== HTTP/HTML
|
||||||
|
*Aufbau*
|
||||||
|
HTTP besteht aus einem Header und einem Body
|
||||||
|
Header:
|
||||||
|
- Eingeleitet durch
|
||||||
|
- das Verb +Ressource +Protocol (Request)
|
||||||
|
- Protocol +Status (Response)
|
||||||
|
- Metainformation
|
||||||
|
- Aufgeteilt in Header-Felder der Form
|
||||||
|
- Name: Inhalt
|
||||||
|
Body:
|
||||||
|
- vollständige Payload
|
||||||
|
|
||||||
|
|
||||||
|
```html
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>Page Title</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<h1>This is a Heading</h1>
|
||||||
|
<p>This is a paragraph.</p>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
```
|
||||||
|
|
||||||
|
==== JS/Web-Programmierung
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
==== MQTT
|
==== MQTT
|
||||||
|
|
||||||
==== Sicherheit
|
==== Sicherheit
|
||||||
|
|
||||||
|
|||||||
@ -541,6 +541,46 @@ std::ofstream myfile("hello.txt", std::ios::app);
|
|||||||
[```sh git checkout <branch> ```], [in den branch wechseln],
|
[```sh git checkout <branch> ```], [in den branch wechseln],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
=== randome
|
||||||
|
```cpp #include <random> ``` \
|
||||||
|
Zahlen sind random aber jedes mal die gleichen
|
||||||
|
#table(columns: 1fr, [```cpp
|
||||||
|
std::random_device rd;
|
||||||
|
std::mt19937 gen(rd());
|
||||||
|
std::uniform_int_distribution<int> die_dist(1, 6);
|
||||||
|
int number = die_dist(gen); // Roll the die once!
|
||||||
|
```])
|
||||||
|
Mit randome Seed
|
||||||
|
#table(columns: 1fr, [```cpp
|
||||||
|
std::mt19937 gen(0); // seed
|
||||||
|
std::uniform_int_distribution<int> die_dist(1, 6);
|
||||||
|
int number = die_dist(gen); // Roll the die once!
|
||||||
|
```])
|
||||||
|
|
||||||
|
=== for loop
|
||||||
|
#table(columns: 1fr, [```cpp
|
||||||
|
std::list<int> values = {1, 2, 3};
|
||||||
|
for (auto it = list.begin(); it < list.end(); it++){
|
||||||
|
std::cout << list.at(it) << std::endl;
|
||||||
|
}
|
||||||
|
```])
|
||||||
|
|
||||||
|
#table(columns: 1fr, [```cpp
|
||||||
|
std::list<int> values = {1, 2, 3};
|
||||||
|
for (auto value : values){
|
||||||
|
std::cout << value << std::endl;
|
||||||
|
}
|
||||||
|
```])
|
||||||
|
|
||||||
|
#table(columns: 1fr, [```cpp
|
||||||
|
std::list<int> values = {1, 2, 3};
|
||||||
|
for (auto &value : values){
|
||||||
|
std::cout << value << std::endl;
|
||||||
|
}
|
||||||
|
```])
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
=== testing
|
=== testing
|
||||||
```cpp
|
```cpp
|
||||||
#include <cassert>
|
#include <cassert>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user