2026-03-06 00:06:21

◆ コードめも

// Filename: xeyes.cpp
// Last Change: 2015-07-13 Mon 06:14:50.
//
#include "wx/wx.h"
class EyeFrame : public wxFrame
{
DECLARE_EVENT_TABLE()
private:
static const int a = 24;
static const int b = 36;
static const int ball = 6;
static const float r = 1.9; // for dynamic movement
wxPoint lc = wxPoint(30, 40); // center of Left-Eye
wxPoint rc = wxPoint(84, 40); // center of Right-Eye
wxPanel* m_panel;
public:
EyeFrame(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_FRAME_STYLE|wxTAB_TRAVERSAL);
~EyeFrame();
void OnUpdateUI(wxUpdateUIEvent&);
};
// Constructor
EyeFrame::EyeFrame(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style)
: wxFrame(parent, id, title, pos, size, style)
{
wxBoxSizer* bSizerTop = new wxBoxSizer(wxVERTICAL);
m_panel = new wxPanel(this, 5000, wxDefaultPosition, wxSize(120, 80), wxTAB_TRAVERSAL);
bSizerTop->Add(m_panel, 0, wxALL|wxALIGN_RIGHT, 5);
this->SetSizer(bSizerTop);
this->Layout();
}
EyeFrame::~EyeFrame()
{
}
// Event Table
BEGIN_EVENT_TABLE(EyeFrame, wxFrame)
EVT_UPDATE_UI(5000, EyeFrame::OnUpdateUI)
END_EVENT_TABLE()
/* Event Handlers & Functions ***************************************/
// Event Handlers
void EyeFrame::OnUpdateUI(wxUpdateUIEvent& event)
{
int sw, sh;
wxDisplaySize(&sw, &sh);
wxMouseState ms = wxGetMouseState();
wxPoint m = ms.GetPosition();
wxPoint p = m_panel->GetScreenPosition();
wxPoint slc = p + lc;
wxPoint src = p + rc;
wxClientDC dc(m_panel);
dc.SetPen(wxPen(*wxBLACK, 3, wxSOLID));
// left eye
float s = (m.x - slc.x) * a / sw * r;
float t = (m.y - slc.y) * b / sh * r;
if (s * s / (a * a) + t * t / (b * b) < 1) {
if (s < 0) s += ball / 2;
else s -= ball / 2;
if (t < 0) t += ball / 2;
else t -= ball / 2;
dc.SetBrush(*wxWHITE);
dc.DrawEllipse(wxRect(lc.x - a, lc.y - b, a * 2, b * 2));
dc.SetBrush(*wxBLACK);
dc.DrawCircle((int)(lc.x + s), (int)(lc.y + t), ball);
}
// right eye
s = (m.x - src.x) * a / sw * r;
t = (m.y - src.y) * b / sh * r;
if (s * s / (a * a) + t * t / (b * b) < 1) {
if (s < 0) s += ball / 2;
else s -= ball / 2;
if (t < 0) t += ball / 2;
else t -= ball / 2;
dc.SetBrush(*wxWHITE);
dc.DrawEllipse(wxRect(rc.x - a, rc.y - b, a * 2, b * 2));
dc.SetBrush(*wxBLACK);
dc.DrawCircle((int)(rc.x + s), (int)(rc.y + t), ball);
}
//this->SetTitle(wxString::Format(wxT("%d,%d (%f,%f)"), m.x, m.y, x, y));
}

コメント



最近の変更点(表示スル)
2026-03-06 00:06:21
+ // Filename: xeyes.cpp

+ // Last Change: 2015-07-13 Mon 06:14:50.

+ //

- 介護保険事務所

- 事業計画進捗管理・事業計画策定準備チーム

- からのお知らせです.

+ #include "wx/wx.h"

- この動画は,今年度の5月と6月に実施した

- 介護事業所間における情報連携に関する意向調査の結果を

- まとめたものです.

+ class EyeFrame : public wxFrame

+ {

+ DECLARE_EVENT_TABLE()

+ private:

+ static const int a = 24;

+ static const int b = 36;

+ static const int ball = 6;

+ static const float r = 1.9; // for dynamic movement

+ wxPoint lc = wxPoint(30, 40); // center of Left-Eye

+ wxPoint rc = wxPoint(84, 40); // center of Right-Eye

- なお,原稿の読み上げは音声ソフトを利用しております.

- 他自治体では,集団指導の説明動画に音声ソフトを活用している事例もみられたことから,

- 本動画において,事務所内の業務効率化につながるか検証する意味で実験的な試みを

- おこなわせていただきました.

- ご了承ください.

+ wxPanel* m_panel;

- アンケートは,おおきく2つありました.

- 1つは,サービス事業所におけるケアプランデータ連携システムへの対応状況について,

- もう1つは,サービス事業所間における,SNSツールの利用の是非について,です.

+ public:

+ EyeFrame(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_FRAME_STYLE|wxTAB_TRAVERSAL);

+ ~EyeFrame();

+ void OnUpdateUI(wxUpdateUIEvent&);

+ };

- 1つめの,サービス事業所におけるケアプランデータ連携システムへの対応状況について,は,

- 医療系サービスを除く,在宅サービスの事業所を対象にしております.

+ // Constructor

+ EyeFrame::EyeFrame(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style)

+ : wxFrame(parent, id, title, pos, size, style)

+ {

+ wxBoxSizer* bSizerTop = new wxBoxSizer(wxVERTICAL);

+ m_panel = new wxPanel(this, 5000, wxDefaultPosition, wxSize(120, 80), wxTAB_TRAVERSAL);

+ bSizerTop->Add(m_panel, 0, wxALL|wxALIGN_RIGHT, 5);

- また,サービス事業所間における,SNSツールの利用については,

- 在宅サービスに加え,施設,居住系サービスの事業所と,居宅介護支援事業所を対象としました.

+ this->SetSizer(bSizerTop);

+ this->Layout();

+ }

- 次のページ以降,それぞれのアンケートについて,

- 設問の意図と回答結果,それに対する考察等を説明いたします.

+ EyeFrame::~EyeFrame()

+ {

+ }

- まず,サービス事業所におけるケアプランデータ連携システムへの対応状況について,です.

+ // Event Table

+ BEGIN_EVENT_TABLE(EyeFrame, wxFrame)

+ EVT_UPDATE_UI(5000, EyeFrame::OnUpdateUI)

+ END_EVENT_TABLE()

- ケアプランデータ連携システムは,ご承知のとおり業務効率化に向けた有用な機能を持っていますが,

- 年間の費用が発生することもあり,なかなか浸透しない状況でした.

+ /* Event Handlers & Functions ***************************************/

+ // Event Handlers

+ void EyeFrame::OnUpdateUI(wxUpdateUIEvent& event)

+ {

+ int sw, sh;

+ wxDisplaySize(&sw, &sh);

+ wxMouseState ms = wxGetMouseState();

+ wxPoint m = ms.GetPosition();

- システムの性質上,事業所単独での導入では,まったく効果のないものですので,

- 多くの事業所では,周りが導入してから,自分のところも導入をしようと考えることは

- ある意味,自然なことであり,

- 国が具体的なコスト削減のイメージを示し,啓蒙を行いましたが,

- 一向に普及しない,様子見,お見合いの状況が続いておりました.

+ wxPoint p = m_panel->GetScreenPosition();

+ wxPoint slc = p + lc;

+ wxPoint src = p + rc;

+

+ wxClientDC dc(m_panel);

+ dc.SetPen(wxPen(*wxBLACK, 3, wxSOLID));

+

+ // left eye

+ float s = (m.x - slc.x) * a / sw * r;

+ float t = (m.y - slc.y) * b / sh * r;

+

+ if (s * s / (a * a) + t * t / (b * b) < 1) {

+ if (s < 0) s += ball / 2;

+ else s -= ball / 2;

+ if (t < 0) t += ball / 2;

+ else t -= ball / 2;

+ dc.SetBrush(*wxWHITE);

+ dc.DrawEllipse(wxRect(lc.x - a, lc.y - b, a * 2, b * 2));

+ dc.SetBrush(*wxBLACK);

+ dc.DrawCircle((int)(lc.x + s), (int)(lc.y + t), ball);

+ }

+

+ // right eye

+ s = (m.x - src.x) * a / sw * r;

+ t = (m.y - src.y) * b / sh * r;

+

+ if (s * s / (a * a) + t * t / (b * b) < 1) {

+ if (s < 0) s += ball / 2;

+ else s -= ball / 2;

+ if (t < 0) t += ball / 2;

+ else t -= ball / 2;

+ dc.SetBrush(*wxWHITE);

+ dc.DrawEllipse(wxRect(rc.x - a, rc.y - b, a * 2, b * 2));

+ dc.SetBrush(*wxBLACK);

+ dc.DrawCircle((int)(rc.x + s), (int)(rc.y + t), ball);

+ }

+ //this->SetTitle(wxString::Format(wxT("%d,%d (%f,%f)"), m.x, m.y, x, y));

+ }

+

+

- こうした状況に対しまして,国という概念的なものではない,

- 身近な誰かが旗振りを買って出なければ,


2026-01-29 17:01:40
+ 介護保険事務所

+ 事業計画進捗管理・事業計画策定準備チーム

+ からのお知らせです.

- var history: list<string>

+ この動画は,今年度の5月と6月に実施した

+ 介護事業所間における情報連携に関する意向調査の結果を

+ まとめたものです.

- var nr = getchar()

- if type(nr) == type(v:t_number)

- if nr == 13 # <cr>

- if nomatch

- HiEcho("\rnot match> " .. pat)

- else

- HiEcho("\r" .. pat)

- endif

+ なお,原稿の読み上げは音声ソフトを利用しております.

+ 他自治体では,集団指導の説明動画に音声ソフトを活用している事例もみられたことから,

+ 本動画において,事務所内の業務効率化につながるか検証する意味で実験的な試みを

+ おこなわせていただきました.

+ ご了承ください.

- add(history, s)

+ アンケートは,おおきく2つありました.

+ 1つは,サービス事業所におけるケアプランデータ連携システムへの対応状況について,

+ もう1つは,サービス事業所間における,SNSツールの利用の是非について,です.

+

+ 1つめの,サービス事業所におけるケアプランデータ連携システムへの対応状況について,は,

+ 医療系サービスを除く,在宅サービスの事業所を対象にしております.

+

+ また,サービス事業所間における,SNSツールの利用については,

+ 在宅サービスに加え,施設,居住系サービスの事業所と,居宅介護支援事業所を対象としました.

+

+ 次のページ以降,それぞれのアンケートについて,

+ 設問の意図と回答結果,それに対する考察等を説明いたします.

+

+ まず,サービス事業所におけるケアプランデータ連携システムへの対応状況について,です.

+

+ ケアプランデータ連携システムは,ご承知のとおり業務効率化に向けた有用な機能を持っていますが,

+ 年間の費用が発生することもあり,なかなか浸透しない状況でした.

+

+ システムの性質上,事業所単独での導入では,まったく効果のないものですので,

+ 多くの事業所では,周りが導入してから,自分のところも導入をしようと考えることは

+ ある意味,自然なことであり,

+ 国が具体的なコスト削減のイメージを示し,啓蒙を行いましたが,

+ 一向に普及しない,様子見,お見合いの状況が続いておりました.

+

+ こうした状況に対しまして,国という概念的なものではない,

+ 身近な誰かが旗振りを買って出なければ,

+

- break

- else

- if nr2char(nr) ==? "p"

- for h in history

- echo h

- endfor

- endif


2025-02-13 12:14:03
+ var history: list<string>

- def MigemoSearch()

- echon "migemo>"

+ var nr = getchar()

+ if type(nr) == type(v:t_number)

+ if nr == 13 # <cr>

+ if nomatch

+ HiEcho("\rnot match> " .. pat)

+ else

+ HiEcho("\r" .. pat)

+ endif

- var s: string

- while 1 # loop until hit return-key

+ add(history, s)

- var pat = MakePattern(s)

- if pat !=# ''

- if search(pat, 'cz') == 0

- HiEcho("\rNo match. " .. pat)

- endif

- @/ = pat

- endif

- execute ':redraw'

- echon "\rmigemo>" .. s

+ break

+ else

+ if nr2char(nr) ==? "p"

+ for h in history

+ echo h

+ endfor

+ endif

- var nr = getchar()

- if type(nr) == type(v:t_number)

- if nr == 13 # <cr>

- HiEcho("\r" .. pat)

- break

- elseif nr == 8 # <c-h>

- s = DoBackspace(s)

- continue

- elseif nr == 27 # <esc>

- # todo: commadline clear

- break

- endif

-

- var c = nr2char(nr)

- s = s .. c

- else

- if nr == "\<BS>" # backspace 0x08

- s = DoBackspace(s)

- endif

- endif

-

- endwhile

- enddef

-

- def DoBackspace(s: string): string

- var l = strcharlen(s)

- if l < 2

- return ''

- endif

- return strcharpart(s, 0, l - 1)

- enddef

-

-



♪ 一覧へ戻る | ♯ 編集する
version 2017.09.24(2031)