暇な時にポツポツと進めています。
てなことで、裏面配線を設定できるようにしました。
裏面配線が出来るならば、裏面表示もできるようにしないと駄目なので反転もできるようにしたのですが、一つ悩む問題が。
全部ベクトルデータなので、左右の反転ならば 座標X を反転させれば良いのですが、問題は円です。
真円ならば反転しても同じなのですが、円を半分に割った時の左右反転が上手くいきませんでした。
なぜならば、このソフトの円の線画は中心点(x,y)から半径rというようなデータでは無く、中心点(x,y)から始点(x1,y1)から終点(x2,y2)を通る円と言うデータになっているからです。
(ついでに言えば、(x1,y1)と(x2,y2)は同心円上にあり、且つ、反時計回りで線画を行う。という物です)
例えばですが、中心点(x,y)、始点(x,y-2)、終点(x,y+2)というデータだと、左半円となる訳です。(反時計回りなので。始点を終点を逆にすると、右半円になります)
単純に、x 座標を反転しても左右反転してくれません(^-^;
取りあえず、始点と終点を逆にすれば良いので座標の反転では無く、始点と終点の入れ替えをやってみた所、問題ありません。
が、しかし、今度は中心点(x,y)、始点(x+2,y)、終点(x,y-2)というデータでやってみます。円の 1/4 を右上に残した円弧ですね。
これで始点と終点を入れ替えると、3/4 を左下に残した円弧になります。当然です。(^-^;
うーん、どうやるんだろう??と2日位悩んでいたのですが、取りあえず始点と終点を 2/4/6/8 の方向(テンキーを見て下さい)のみ設定出来るようにして、全部の12パターンを見て変換しようという力技に走ろうかと思ったのですが、それだけ余りにも安易すぎるので却下。
回転ならば、そのまま三角関数で回転すれば良いだけなのですが、左右反転と 180度回転は違うので更に悩む事2日。
ごちゃごちゃと計算式を書いて悩んでいたのですが、出来上がってみてばなんてことはない、引き算と代入だけで計算可能でした。(式を書こうと思いましたが、座標系がうちのCADの座標系でのみ有効な計算式かもしれないので)
自分で作った計算式なのに、なんでこれで左右反転するのは理解はしていないです。(笑)
こういうのは、きっと偉い人が考えた公式とかあるんでしょうね。
でも、数学とか苦手なのでそういうのわからないのですが(そもそも、ぐぐってもこんな特殊な状況?での計算の解法なんて出てこない)
計算上ではきちんと左右反転するのでオッケーです(笑)
っていうかですね、そもそも配線を円弧で作るってケースはほぼ無いと思いますし、ちょっと回路図CADを何個か見てみましたが、円弧の配線なんて機能がそのそもありません。
まぁ、パーツライブラリのシルク印刷用なので、そもそもこんなに頑張って考える必要は無いんですが(^-^;