プログラムを読んでみる=おもしろい
このファイル
https://github.com/TexasInstrumentsDIY/ ... /shapes.py
このファイル文字表示まで有る筈なのに
楕円、長方形以降は表示されない。
図形一つ一つの座標をカット&トライで調整で
スクリーンに表示させてみた、
すると、座標がスクリーンの外に指定されていて、
ソレで表示されなかった事が判った。
プログラムでは、冒頭で
スクリーンの大きさは定義されていると思う
30行目辺りに
WIDTH = 128
HEIGHT = 160
の記述がある。
座標をスクリーンの中に措けば
図形は表示された。
これは、プログラムの作者が、このプログラムを囓る学習者を
想定し、
敢えて座標をスクリーン外に措き
学習者に「なぜ(Why)」表示しない?をきっかけに
学習させる事を意図した様に思われる。
お陰で
・座標の意味
・円(楕円)三角形、四角形の作り方
・色の混合、意図した色の作り方
・テキスト文字の表示の仕方
などの、概要を自分の手と頭を使って学習出来た。
やはり、「動かして見ないと」
『なる程、そうか』とは ならない!
お陰さまで、今日は、夏の高温が気にならずに済んだ :::::::) 頭は温まった(オーバーヒート気味):)
https://github.com/TexasInstrumentsDIY/ ... /shapes.py
このファイル文字表示まで有る筈なのに
楕円、長方形以降は表示されない。
図形一つ一つの座標をカット&トライで調整で
スクリーンに表示させてみた、
すると、座標がスクリーンの外に指定されていて、
ソレで表示されなかった事が判った。
プログラムでは、冒頭で
スクリーンの大きさは定義されていると思う
30行目辺りに
WIDTH = 128
HEIGHT = 160
の記述がある。
座標をスクリーンの中に措けば
図形は表示された。
これは、プログラムの作者が、このプログラムを囓る学習者を
想定し、
敢えて座標をスクリーン外に措き
学習者に「なぜ(Why)」表示しない?をきっかけに
学習させる事を意図した様に思われる。
お陰で
・座標の意味
・円(楕円)三角形、四角形の作り方
・色の混合、意図した色の作り方
・テキスト文字の表示の仕方
などの、概要を自分の手と頭を使って学習出来た。
やはり、「動かして見ないと」
『なる程、そうか』とは ならない!
お陰さまで、今日は、夏の高温が気にならずに済んだ :::::::) 頭は温まった(オーバーヒート気味):)
Re: プログラムを読んでみる=おもしろい
文字の描画の状態を
スクリーン内で「回転」させて見た。
これは、「かなりの力技」だ。
スクリーン(0,0)が左上隅になるスクリーン位置で、
描画させたかった。
目には、文字列に見えるが
プログラム内では,「文字列」を一つの「図形」として処理している
様に思える。
回転させただけでは、スクリーンのx軸が狭く
2行目文字列の末尾がスクリーン外に、こぼれて見えなくなってしまう。
そこで、
プログラム的に、文字通り
『切った、貼った』で済ませた。 :)
文字列の改行処理が解らない為。
解っても、ここでは、やはり「図形処理」になるのだろ?
スクリーン内で「回転」させて見た。
これは、「かなりの力技」だ。
スクリーン(0,0)が左上隅になるスクリーン位置で、
描画させたかった。
目には、文字列に見えるが
プログラム内では,「文字列」を一つの「図形」として処理している
様に思える。
回転させただけでは、スクリーンのx軸が狭く
2行目文字列の末尾がスクリーン外に、こぼれて見えなくなってしまう。
そこで、
プログラム的に、文字通り
『切った、貼った』で済ませた。 :)
文字列の改行処理が解らない為。
解っても、ここでは、やはり「図形処理」になるのだろ?
- IMG_20210722_145700.jpg
- IMG_20210722_145700.jpg (127.59 KiB) Viewed 4350 times
Re: プログラムを読んでみる=おもしろい
なぜ、こうなる?
スクリーンの左上隅が(0,0)右下隅が(128,160)
角度360度でスクリーン内に水平表示されたので、
右肩上がり(45度)に表示させてみると 360+45=405度
文字列の頭の座標が、
y軸で随分、値が実際の描画との位置とで違う。
360度から405度 に斜めに表示させると
文字列の頭の位置が、(0,0)基点の座標と随分違う。
スクリプトでは
draw_rotated_text(disp.buffer, 'Hello World!', (15, 25),405, font, fill=(255,255,255))
draw_rotated_text(disp.buffer, 'This is a line of text', (10, 40),405, font, fill=(255,255,255))
y軸の値が、(0,0)からの距離が違う。
(15, 25) 1行目 見かけでは25より75くらい
(10, 40) 2行目 見かけは40より150くらい
★まるで、スクリーンの右上隅を基点にした字列の末尾の座標に近い? おもしろい!
これは、『もしや、360度以上廻すと、スクリーン起点も伴って
廻ったのどろうか? うむ〜 ソレっぽい』???
これ、移動「ド」みたい でもないか、楽器じゃないしなぁ・・・・
★斜め表示は、水平表示より文字の鮮明度が下がる。ピクセルの縦横比が違うのか?
ドットが正方形ではないのだろう。
スクリーンの左上隅が(0,0)右下隅が(128,160)
角度360度でスクリーン内に水平表示されたので、
右肩上がり(45度)に表示させてみると 360+45=405度
文字列の頭の座標が、
y軸で随分、値が実際の描画との位置とで違う。
360度から405度 に斜めに表示させると
文字列の頭の位置が、(0,0)基点の座標と随分違う。
スクリプトでは
draw_rotated_text(disp.buffer, 'Hello World!', (15, 25),405, font, fill=(255,255,255))
draw_rotated_text(disp.buffer, 'This is a line of text', (10, 40),405, font, fill=(255,255,255))
y軸の値が、(0,0)からの距離が違う。
(15, 25) 1行目 見かけでは25より75くらい
(10, 40) 2行目 見かけは40より150くらい
★まるで、スクリーンの右上隅を基点にした字列の末尾の座標に近い? おもしろい!
これは、『もしや、360度以上廻すと、スクリーン起点も伴って
廻ったのどろうか? うむ〜 ソレっぽい』???
これ、移動「ド」みたい でもないか、楽器じゃないしなぁ・・・・
★斜め表示は、水平表示より文字の鮮明度が下がる。ピクセルの縦横比が違うのか?
ドットが正方形ではないのだろう。
- IMG_20210723_094522.jpg
- IMG_20210723_094522.jpg (155.67 KiB) Viewed 4314 times
Re: プログラムを読んでみる=おもしろい
このスクリプトで405度廻している。
360度以上廻すと、始めスクリーンの左上隅が(0,0)基点
だったが、縦置きのスクリーンが左に横転し現在の右上隅
(128,0)が(0,0)に昇格する様だ。
「文字列」は、一つの「ラバースタンプ」=図形であり、見かけの
文字の向きは天地が転倒している見えるが
昇格(0,0)からの座標払い出しの(更新)座標数値でプロットしている。(みたいだ?)
「text」の『スタンプ』が上になり=(10, 40)
「world』のスタンプが、下になっている=(15, 25)
この座標は「昇格基点」からの払い出しで見ると、合致している,to思ったら
でも、ないか?
おもしろい!
360度以上廻すと、始めスクリーンの左上隅が(0,0)基点
だったが、縦置きのスクリーンが左に横転し現在の右上隅
(128,0)が(0,0)に昇格する様だ。
「文字列」は、一つの「ラバースタンプ」=図形であり、見かけの
文字の向きは天地が転倒している見えるが
昇格(0,0)からの座標払い出しの(更新)座標数値でプロットしている。(みたいだ?)
「text」の『スタンプ』が上になり=(10, 40)
「world』のスタンプが、下になっている=(15, 25)
この座標は「昇格基点」からの払い出しで見ると、合致している,to思ったら
でも、ないか?
おもしろい!
Re: プログラムを読んでみる=おもしろい
描画文字を大きくしたくて、探し回りました。探したら見つけました。
「犬も歩けば・・・当たる」でした。
ここは、スクリプトにサンプルヒントが有ったのですが
フォント名で実行した時は、
======エラー
Traceback (most recent call last):
File "shapes2.py", line 91, in <module>
font = ImageFont.truetype('Minecraftia.ttf', 20)
File "/usr/lib/python2.7/dist-packages/PIL/ImageFont.py", line 280, in truetype
return FreeTypeFont(font, size, index, encoding, layout_engine)
File "/usr/lib/python2.7/dist-packages/PIL/ImageFont.py", line 145, in __init__
layout_engine=layout_engine)
IOError: cannot open resource
================エラー
で、上手く行かなかった。
fontのアドレスを直にPATHを指定してみて」
と言うWeb記事を見つけました。
長いPATHなのでコピペすると,文字が、大きくなりました。
やれやれ。一日かかりでした。 :) :D
「犬も歩けば・・・当たる」でした。
ここは、スクリプトにサンプルヒントが有ったのですが
フォント名で実行した時は、
======エラー
Traceback (most recent call last):
File "shapes2.py", line 91, in <module>
font = ImageFont.truetype('Minecraftia.ttf', 20)
File "/usr/lib/python2.7/dist-packages/PIL/ImageFont.py", line 280, in truetype
return FreeTypeFont(font, size, index, encoding, layout_engine)
File "/usr/lib/python2.7/dist-packages/PIL/ImageFont.py", line 145, in __init__
layout_engine=layout_engine)
IOError: cannot open resource
================エラー
で、上手く行かなかった。
fontのアドレスを直にPATHを指定してみて」
と言うWeb記事を見つけました。
長いPATHなのでコピペすると,文字が、大きくなりました。
やれやれ。一日かかりでした。 :) :D
- IMG20210724183850.jpg
- IMG20210724183850.jpg (182.19 KiB) Viewed 4247 times
Jump to
- Community
- General discussion
- Announcements
- Other languages
- Deutsch
- Español
- Français
- Italiano
- Nederlands
- 日本語
- Polski
- Português
- Русский
- Türkçe
- User groups and events
- Raspberry Pi Official Magazine
- Using the Raspberry Pi
- Beginners
- Troubleshooting
- Advanced users
- Assistive technology and accessibility
- Education
- Picademy
- Teaching and learning resources
- Staffroom, classroom and projects
- Astro Pi
- Mathematica
- High Altitude Balloon
- Weather station
- Programming
- C/C++
- Java
- Python
- Scratch
- Other programming languages
- Windows 10 for IoT
- Wolfram Language
- Bare metal, Assembly language
- Graphics programming
- OpenGLES
- OpenVG
- OpenMAX
- General programming discussion
- Projects
- Networking and servers
- Automation, sensing and robotics
- Graphics, sound and multimedia
- Other projects
- Gaming
- Media centres
- AIY Projects
- Hardware and peripherals
- Camera board
- Compute Module
- Official Display
- HATs and other add-ons
- Device Tree
- Interfacing (DSI, CSI, I2C, etc.)
- Keyboard computers (400, 500, 500+)
- Raspberry Pi Pico
- General
- SDK
- MicroPython
- Other RP2040 boards
- Zephyr
- Rust
- AI Accelerator
- AI Camera - IMX500
- Hailo
- Software
- Raspberry Pi OS
- Raspberry Pi Connect
- Raspberry Pi Desktop for PC and Mac
- Beta testing
- Other
- Android
- Debian
- FreeBSD
- Gentoo
- Linux Kernel
- NetBSD
- openSUSE
- Plan 9
- Puppy
- Arch
- Pidora / Fedora
- RISCOS
- Ubuntu
- Ye Olde Pi Shoppe
- For sale
- Wanted
- Off topic
- Off topic discussion