Browse Source

Make first real commit: copy of CaRMetal 4.2.8

master
Glen Whitney 3 years ago
parent
commit
c312811084
  1. 158
      Main.java
  2. 16
      README.md
  3. BIN
      atp/Des10.gif
  4. BIN
      atp/Des12.gif
  5. BIN
      atp/Des14.gif
  6. BIN
      atp/Des18.gif
  7. BIN
      atp/Des8.gif
  8. BIN
      atp/Fonts10.gif
  9. BIN
      atp/Fonts12.gif
  10. BIN
      atp/Fonts14.gif
  11. BIN
      atp/Fonts18.gif
  12. BIN
      atp/Fonts8.gif
  13. 60
      atp/a.java
  14. 1129
      atp/b.java
  15. 43
      atp/c.java
  16. 176
      atp/d.java
  17. 64
      atp/e.java
  18. 134
      atp/f.java
  19. 2027
      atp/sHotEqn.java
  20. 139
      base3D-es.zir
  21. 101
      base3D-fr-modifs.zir
  22. 139
      base3D-fr.zir
  23. 138
      base3D.zir
  24. 13
      baseDP.zir
  25. 1446
      builtin.mcr
  26. 50
      com/apple/eawt/Application.java
  27. 50
      com/apple/eawt/ApplicationAdapter.java
  28. 39
      com/apple/eawt/ApplicationBeanInfo.java
  29. 37
      com/apple/eawt/ApplicationEvent.java
  30. 38
      com/apple/eawt/ApplicationListener.java
  31. 56
      com/apple/eawt/CocoaComponent.java
  32. 103
      de/erichseifert/vectorgraphics2d/DataUtils.java
  33. 459
      de/erichseifert/vectorgraphics2d/EPSGraphics2D.java
  34. 125
      de/erichseifert/vectorgraphics2d/GraphicsUtils.java
  35. 637
      de/erichseifert/vectorgraphics2d/PDFGraphics2D.java
  36. 371
      de/erichseifert/vectorgraphics2d/SVGGraphics2D.java
  37. 957
      de/erichseifert/vectorgraphics2d/VectorGraphics2D.java
  38. 25
      de/erichseifert/vectorgraphics2d/package-info.java
  39. 69
      default.mcr
  40. BIN
      eric/.DS_Store
  41. 1194
      eric/FileTools.java
  42. BIN
      eric/GUI/.DS_Store
  43. 55
      eric/GUI/ZDialog/ZButton.java
  44. 70
      eric/GUI/ZDialog/ZCheckBox.java
  45. 263
      eric/GUI/ZDialog/ZDialog.java
  46. 24
      eric/GUI/ZDialog/ZLabel.java
  47. 30
      eric/GUI/ZDialog/ZMessageDialog.java
  48. 45
      eric/GUI/ZDialog/ZSep.java
  49. 127
      eric/GUI/ZDialog/ZTextField.java
  50. 132
      eric/GUI/ZDialog/ZTextFieldAndLabel.java
  51. 39
      eric/GUI/ZDialog/ZTools.java
  52. BIN
      eric/GUI/icons/.DS_Store
  53. BIN
      eric/GUI/icons/bar/aimant.png
  54. BIN
      eric/GUI/icons/bar/aimantON.png
  55. BIN
      eric/GUI/icons/bar/angle0.png
  56. BIN
      eric/GUI/icons/bar/angle1.png
  57. BIN
      eric/GUI/icons/bar/angle2.png
  58. BIN
      eric/GUI/icons/bar/angle3.png
  59. BIN
      eric/GUI/icons/bar/bold.png
  60. BIN
      eric/GUI/icons/bar/carbtn.png
  61. BIN
      eric/GUI/icons/bar/carbtn_dis.png
  62. BIN
      eric/GUI/icons/bar/cblack.png
  63. BIN
      eric/GUI/icons/bar/cblue.png
  64. BIN
      eric/GUI/icons/bar/cbrown.png
  65. BIN
      eric/GUI/icons/bar/ccyan.png
  66. BIN
      eric/GUI/icons/bar/cgreen.png
  67. BIN
      eric/GUI/icons/bar/chidden.png
  68. BIN
      eric/GUI/icons/bar/cnormal.png
  69. BIN
      eric/GUI/icons/bar/cod0.png
  70. BIN
      eric/GUI/icons/bar/cod1.png
  71. BIN
      eric/GUI/icons/bar/cod2.png
  72. BIN
      eric/GUI/icons/bar/cod3.png
  73. BIN
      eric/GUI/icons/bar/cod4.png
  74. BIN
      eric/GUI/icons/bar/cod5.png
  75. BIN
      eric/GUI/icons/bar/cod6.png
  76. BIN
      eric/GUI/icons/bar/color0.png
  77. BIN
      eric/GUI/icons/bar/color1.png
  78. BIN
      eric/GUI/icons/bar/color2.png
  79. BIN
      eric/GUI/icons/bar/color3.png
  80. BIN
      eric/GUI/icons/bar/color4.png
  81. BIN
      eric/GUI/icons/bar/color5.png
  82. BIN
      eric/GUI/icons/bar/cred.png
  83. BIN
      eric/GUI/icons/bar/cshowname.png
  84. BIN
      eric/GUI/icons/bar/cshowvalue.png
  85. BIN
      eric/GUI/icons/bar/csolid.png
  86. BIN
      eric/GUI/icons/bar/csuperhidden.png
  87. BIN
      eric/GUI/icons/bar/cthick.png
  88. BIN
      eric/GUI/icons/bar/cthin.png
  89. BIN
      eric/GUI/icons/bar/filled.png
  90. BIN
      eric/GUI/icons/bar/fnct.png
  91. BIN
      eric/GUI/icons/bar/hide.png
  92. BIN
      eric/GUI/icons/bar/large.png
  93. BIN
      eric/GUI/icons/bar/obtuse.png
  94. BIN
      eric/GUI/icons/bar/open_left.png
  95. BIN
      eric/GUI/icons/bar/open_right.png
  96. BIN
      eric/GUI/icons/bar/partial.png
  97. BIN
      eric/GUI/icons/bar/plines.png
  98. BIN
      eric/GUI/icons/bar/showname.png
  99. BIN
      eric/GUI/icons/bar/showvalue.png
  100. BIN
      eric/GUI/icons/bar/solid.png

158
Main.java

@ -0,0 +1,158 @@
import eric.FileTools;
import eric.GUI.palette.PaletteManager;
import eric.GUI.window.MainApplet;
import eric.JLogoWindow;
import eric.JSprogram.ScriptThread;
import eric.OS;
import eric.macros.MacroTools;
import eric.bar.JPropertiesBar;
import java.io.FileOutputStream;
import java.io.PrintStream;
import java.util.Locale;
import java.util.Properties;
import javax.swing.SwingUtilities;
import rene.gui.Global;
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author erichake
*/
public class Main extends MainApplet {
public Main() {
super();
}
public void init() {
rene.gui.Global.DetectDesktopSize();
Global.initBundles();
Global.initProperties();
eric.JGlobalPreferences.initPreferences();
ScriptThread.InitContextFactory();
// Global.FirstRun();
JPropertiesBar.CreatePropertiesBar();
super.init();
}
public void start() {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
PaletteManager.init();
}
});
super.start();
}
static public void main(final String[] args) {
final int PORT=32145;
int i=0;
String filename="";
while (i<args.length) {
if (args[i].startsWith("-l")&&i<args.length-1) {
i+=2;
} else if (args[i].startsWith("-h")&&i<args.length-1) {
i+=2;
} else if (args[i].startsWith("-s")) {
i++;
} else if (args[i].startsWith("-r")) {
i++;
} else if (args[i].startsWith("-d")) {
i++;
} else {
filename+=args[i]+System.getProperty("path.separator");
i++;
}
}
final String FILES=filename;
// final eric.JUniqueInstance uniqueInstance=new eric.JUniqueInstance(
// PORT, FILES);
// if (uniqueInstance.launch()) {
// if (OS.isMac()) {
// new eric.JMacOShandler();
// }
// mainApplication(args);
// }
if (OS.isMac()) {
// on mac, things are easy :
new eric.JMacOShandler();
mainApplication(args);
}else if (OS.isWindows()) {
// // on windows, use a socket in order to launch unique instance of app :
// final eric.JUniqueInstance uniqueInstance=new eric.JUniqueInstance(
// PORT, FILES);
// if (uniqueInstance.launch()) {
// mainApplication(args);
// }
// make things simple without socket, just to see if it's better :
mainApplication(args);
}else {
// on linux, make it simple (so, without hability to launch files with double
// click when app is already open). Linux doesn't like socket things...
mainApplication(args);
}
}
// zirkel is called as application :
public static void mainApplication(final String args[]) {
rene.gui.Global.DetectDesktopSize();
int i=0;
String filename="";
while (i<args.length) {
if (args[i].startsWith("-l")&&i<args.length-1) {
Locale.setDefault(new Locale(args[i+1], ""));
i+=2;
} else if (args[i].startsWith("-h")&&i<args.length-1) {
i+=2;
} else if (args[i].startsWith("-s")) {
i++;
} else if (args[i].startsWith("-r")) {
i++;
} else if (args[i].startsWith("-d")) {
final Properties p=System.getProperties();
try {
final PrintStream out=new PrintStream(
new FileOutputStream(p.getProperty("user.home")+p.getProperty("file.separator")+"zirkel.log"));
System.setErr(out);
System.setOut(out);
} catch (final Exception e) {
System.out.println("Could not open log file!");
}
i++;
} else {
filename=args[i];
FileTools.addStartupFile(filename);
i++;
}
}
Global.renameOldHomeDirectory();
Global.loadProperties(Global.getHomeDirectory()+"carmetal_config.txt");
Global.initBundles();
JLogoWindow.ShowLogoWindow(false);
Global.setParameter("jsdumb", Global.getParameter("jsdumb", true));
// JLogoWindow.ShowLogoWindow();
Global.initProperties();
MacroTools.createLocalDirectory();
eric.JGlobalPreferences.initPreferences();
ScriptThread.InitContextFactory();
FileTools.FirstRun();
}
}

16
README.md

@ -1,3 +1,17 @@
# CaRMtl
This is a copy of CaRMetal 4.2.8 (see http://carmetal.org) for tweaking and hacking on it, not a fork or attempt to take it over! See README.
This repository is a copy of CaRMetal 4.2.8 (see http://carmetal.org) for
tweaking and hacking on it. I created it because there did not seem to be a
public code repository for CaRMetal, but there were a number of small projects
I wanted to try on its codebase. My intention is to offer all of the changes
pursued here back to the maintainers of CaRMetal, if they are receptive. Thus,
this repository is not a fork or attempt to take over CaRMetal.
As such, I wasn't sure what name to give the repository; using exactly
CaRMetal seemed presumptuous, but making it too different seemed too much like
this was intended as an independent project. Hence, CaRMtl. (Also, it's an
awful enough name to be clear that this couldn't be an independent project
because if it were, I would surely pick a better name, like CaRWaX or
something ;-)
Happy geometring, Glen.

BIN
atp/Des10.gif

Binary file not shown.

BIN
atp/Des12.gif

Binary file not shown.

BIN
atp/Des14.gif

Binary file not shown.

BIN
atp/Des18.gif

Binary file not shown.

BIN
atp/Des8.gif

Binary file not shown.

BIN
atp/Fonts10.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

BIN
atp/Fonts12.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

BIN
atp/Fonts14.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

BIN
atp/Fonts18.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

BIN
atp/Fonts8.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

60
atp/a.java

@ -0,0 +1,60 @@
/*****************************************************************************
* *
* HotEqn Equation Viewer Basic Applet *
* *
******************************************************************************
* Java Applet to view mathematical Equations provided in the LaTeX language *
******************************************************************************
Copyright 2006 Stefan Müller and Christian Schmid, modified by Rene Grothmann
This file is part of the HotEqn package.
HotEqn is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation;
HotEqn is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package atp;
import java.awt.Color;
import java.awt.image.RGBImageFilter;
class a extends RGBImageFilter {
Color a;
boolean _fldif;
a(final Color color) {
_fldif = false;
a = color;
_fldif = false;
super.canFilterIndexColorModel = true;
}
a(final Color color, final boolean flag) {
_fldif = false;
a = color;
_fldif = flag;
super.canFilterIndexColorModel = true;
}
@Override
public int filterRGB(final int i, final int j, final int k) {
if (_fldif) {
return 0x1fff0000;
}
final int l = k & 0xffffff;
if (l == 0xffffff) {
return l;
} else {
return 0xff000000 | a.getRGB();
}
}
}

1129
atp/b.java

File diff suppressed because it is too large

43
atp/c.java

@ -0,0 +1,43 @@
/*****************************************************************************
* *
* HotEqn Equation Viewer Basic Applet *
* *
******************************************************************************
* Java Applet to view mathematical Equations provided in the LaTeX language *
******************************************************************************
Copyright 2006 Stefan Müller and Christian Schmid, modified by Rene Grothmann
This file is part of the HotEqn package.
HotEqn is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation;
HotEqn is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package atp;
class c {
public int _flddo;
public int _fldif;
public int a;
public c(final int i, final int j, final int k) {
_flddo = i;
_fldif = j;
a = k;
}
public c() {
_flddo = 0;
_fldif = 0;
a = 0;
}
}

176
atp/d.java

@ -0,0 +1,176 @@
/*****************************************************************************
* *
* HotEqn Equation Viewer Basic Applet *
* *
******************************************************************************
* Java Applet to view mathematical Equations provided in the LaTeX language *
******************************************************************************
Copyright 2006 Stefan Müller and Christian Schmid, modified by Rene Grothmann
This file is part of the HotEqn package.
HotEqn is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation;
HotEqn is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package atp;
import java.applet.Applet;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Rectangle;
import java.awt.Toolkit;
import java.awt.image.CropImageFilter;
import java.awt.image.FilteredImageSource;
import java.awt.image.ImageProducer;
import java.io.BufferedInputStream;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.net.URL;
import java.util.Hashtable;
import java.util.StringTokenizer;
// Referenced classes of package atp:
// a
class d {
private final ImageProducer _flddo[] = { null, null, null, null, null };
private final String _fldif[] = { "8", "10", "12", "14", "18" };
private final Hashtable _fldfor;
private static boolean a = true;
public d() {
_fldfor = new Hashtable(189);
}
public Image a(final boolean flag, final boolean flag1, final String s,
final Graphics2D g, final Applet applet) {
final StringTokenizer stringtokenizer = new StringTokenizer(s, "/");
String s1 = stringtokenizer.nextToken();
s1 = stringtokenizer.nextToken().substring(5);
final String s2 = stringtokenizer.nextToken();
int i = -1;
boolean flag2 = true;
while (flag2) {
if (_fldif[++i].equals(s1)) {
flag2 = false;
}
if (i == 4) {
flag2 = false;
}
}
if (_flddo[i] == null) {
_flddo[i] = a(flag, flag1, "Fonts" + s1 + ".gif", applet);
final String s3 = "Des" + s1 + ".gif";
BufferedInputStream bufferedinputstream = null;
try {
if (a) {
getClass().getResourceAsStream(s3);
bufferedinputstream = new BufferedInputStream(getClass()
.getResourceAsStream(s3));
} else if ((!flag) & (!flag1)) {
bufferedinputstream = new BufferedInputStream((new URL(s3))
.openStream());
} else if (flag) {
bufferedinputstream = new BufferedInputStream((new URL(
applet.getCodeBase(), s3)).openStream());
} else {
try {
bufferedinputstream = new BufferedInputStream(
getClass().getResource(s3).openStream());
} catch (final Exception exception) {
}
}
final ObjectInputStream objectinputstream = new ObjectInputStream(
bufferedinputstream);
final int j = objectinputstream.readInt();
for (int k = 0; k < j; k++) {
final String s4 = (String) objectinputstream.readObject();
_fldfor.put(s1 + s4, new Rectangle(
(Rectangle) objectinputstream.readObject()));
}
bufferedinputstream.close();
} catch (final Exception exception1) {
// System.out.println(exception1.toString());
_flddo[i] = null;
}
}
Image image = null;
if (_flddo[i] != null) {
final Rectangle rectangle = (Rectangle) _fldfor.get(s1 + s2);
image = Toolkit.getDefaultToolkit().createImage(
new FilteredImageSource(new FilteredImageSource(_flddo[i],
new CropImageFilter(rectangle.x, rectangle.y,
rectangle.width, rectangle.height)), new a(
g.getColor())));
}
return image;
}
public ImageProducer a(final boolean flag, final boolean flag1,
final String s, final Applet applet) {
ImageProducer imageproducer = null;
if (a) {
imageproducer = a(s);
}
if (imageproducer == null) {
a = false;
if ((!flag) & (!flag1)) {
imageproducer = Toolkit.getDefaultToolkit().getImage(s)
.getSource();
} else if (flag) {
imageproducer = applet.getImage(applet.getCodeBase(), s)
.getSource();
} else {
try {
final URL url = getClass().getResource(s);
imageproducer = (ImageProducer) url.getContent();
} catch (final Exception exception) {
}
}
}
return imageproducer;
}
ImageProducer a(final String s) {
ImageProducer imageproducer = null;
try {
final InputStream inputstream = getClass().getResourceAsStream(s);
int i = inputstream.available();
byte abyte0[] = new byte[i];
int j = 0;
for (int k = 0; k != -1;) {
k = inputstream.read(abyte0, j, i);
if (k != -1) {
j += k;
i = inputstream.available();
final int l = j + i;
if (l > abyte0.length) {
final byte abyte1[] = (byte[]) abyte0.clone();
abyte0 = new byte[l];
System.arraycopy(abyte1, 0, abyte0, 0, j);
}
}
if (i == 0) {
break;
}
}
imageproducer = Toolkit.getDefaultToolkit().createImage(abyte0)
.getSource();
} catch (final Exception exception) {
}
return imageproducer;
}
}

64
atp/e.java

@ -0,0 +1,64 @@
package atp;
class e {
public int y;
public String w;
public static final int k = 0;
public static final int _fldbyte = 1;
public static final int o = 2;
public static final int r = 3;
public static final int _fldlong = 4;
public static final int j = 5;
public static final int _fldelse = 7;
public static final int _fldfor = 8;
public static final int q = 9;
public static final int s = 10;
public static final int B = 11;
public static final int _fldvoid = 12;
public static final int _flddo = 13;
public static final int t = 14;
public static final int _fldchar = 15;
public static final int i = 16;
public static final int A = 17;
public static final int u = 18;
public static final int _fldcase = 19;
public static final int C = 20;
public static final int d = 22;
public static final int m = 24;
public static final int g = 25;
public static final int f = 50;
public static final int v = 51;
public static final int _fldint = 99;
public static final int p = 100;
public static final int _fldif = 108;
public static final int n = 109;
public static final int _fldnull = 110;
public static final int a = 113;
public static final int b = 114;
public static final int c = 115;
public static final int D = 116;
public static final int l = 117;
public static final int h = 118;
public static final int z = 119;
public static final int x = 120;
public static final int _fldnew = 121;
public static final int _fldtry = 122;
public static final int e = 123;
public static final int _fldgoto = 124;
public e(final int i1, final String s1) {
y = i1;
w = s1;
}
public e(final int i1) {
y = i1;
w = "";
}
public e() {
y = 0;
w = "";
}
}

134
atp/f.java

@ -0,0 +1,134 @@
/*****************************************************************************
* *
* HotEqn Equation Viewer Basic Applet *
* *
******************************************************************************
* Java Applet to view mathematical Equations provided in the LaTeX language *
******************************************************************************
Copyright 2006 Stefan Müller and Christian Schmid, modified by Rene Grothmann
This file is part of the HotEqn package.
HotEqn is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation;
HotEqn is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package atp;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Rectangle;
import java.awt.Toolkit;
import java.awt.image.CropImageFilter;
import java.awt.image.FilteredImageSource;
import java.awt.image.ImageProducer;
import java.io.BufferedInputStream;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.util.Hashtable;
import java.util.StringTokenizer;
// Referenced classes of package atp:
// a
class f {
private final ImageProducer _flddo[] = { null, null, null, null, null };
private final String _fldif[] = { "8", "10", "12", "14", "18" };
private final Hashtable _fldfor;
public f() {
_fldfor = new Hashtable(189);
}
@SuppressWarnings("unchecked")
public Image a(final String s, final Graphics2D g) {
final StringTokenizer stringtokenizer = new StringTokenizer(s, "/");
String s1 = stringtokenizer.nextToken();
s1 = stringtokenizer.nextToken().substring(5);
final String s2 = stringtokenizer.nextToken();
int i = -1;
boolean flag2 = true;
while (flag2) {
if (_fldif[++i].equals(s1)) {
flag2 = false;
}
if (i == 4) {
flag2 = false;
}
}
if (_flddo[i] == null) {
_flddo[i] = a("Fonts" + s1 + ".gif");
final String s3 = "Des" + s1 + ".gif";
BufferedInputStream bufferedinputstream = null;
try {
getClass().getResourceAsStream(s3);
bufferedinputstream = new BufferedInputStream(getClass()
.getResourceAsStream(s3));
final ObjectInputStream objectinputstream = new ObjectInputStream(
bufferedinputstream);
final int j = objectinputstream.readInt();
for (int k = 0; k < j; k++) {
final String s4 = (String) objectinputstream.readObject();
_fldfor.put(s1 + s4, new Rectangle(
(Rectangle) objectinputstream.readObject()));
}
bufferedinputstream.close();
} catch (final Exception exception1) {
// System.out.println(exception1.toString());
_flddo[i] = null;
}
}
Image image = null;
if (_flddo[i] != null) {
final Rectangle rectangle = (Rectangle) _fldfor.get(s1 + s2);
image = Toolkit.getDefaultToolkit().createImage(
new FilteredImageSource(new FilteredImageSource(_flddo[i],
new CropImageFilter(rectangle.x, rectangle.y,
rectangle.width, rectangle.height)), new a(
g.getColor())));
}
return image;
}
ImageProducer a(final String s) {
ImageProducer imageproducer = null;
try {
final InputStream inputstream = getClass().getResourceAsStream(s);
int i = inputstream.available();
byte abyte0[] = new byte[i];
int j = 0;
for (int k = 0; k != -1;) {
k = inputstream.read(abyte0, j, i);
if (k != -1) {
j += k;
i = inputstream.available();
final int l = j + i;
if (l > abyte0.length) {
final byte abyte1[] = (byte[]) abyte0.clone();
abyte0 = new byte[l];
System.arraycopy(abyte1, 0, abyte0, 0, j);
}
}
if (i == 0) {
break;
}
}
imageproducer = Toolkit.getDefaultToolkit().createImage(abyte0)
.getSource();
} catch (final Exception exception) {
}
return imageproducer;
}
}

2027
atp/sHotEqn.java

File diff suppressed because it is too large

139
base3D-es.zir

@ -0,0 +1,139 @@
<?xml version="1.0" encoding="utf-8"?>
<CaR>
<Script Name="vista de techo" onload="false">
phi=GetExpressionValue(&quot;E10&quot;);
teta=GetExpressionValue(&quot;E11&quot;);
dphi=(90-phi)/200;
dteta=(90-teta)/200;
for (i=0;i&lt;200;i++){
phi=phi+dphi;
SetExpressionValue(&quot;E10&quot;,phi);
teta=teta+dteta;
SetExpressionValue(&quot;E11&quot;,teta);
}
SetExpressionValue(&quot;E10&quot;,90);
SetExpressionValue(&quot;E11&quot;,90);
</Script>
<Script Name="vista de frente" onload="false">
phi=GetExpressionValue(&quot;E10&quot;);
teta=GetExpressionValue(&quot;E11&quot;);
dphi=-phi/200;
dteta=-teta/200;
for (i=0;i&lt;200;i++){
phi=phi+dphi;
SetExpressionValue(&quot;E10&quot;,phi);
teta=teta+dteta;
SetExpressionValue(&quot;E11&quot;,teta);
}
SetExpressionValue(&quot;E10&quot;,0);
SetExpressionValue(&quot;E11&quot;,0);
</Script>
<Script Name="vista derecha" onload="false">
phi=GetExpressionValue(&quot;E10&quot;);
teta=GetExpressionValue(&quot;E11&quot;);
dphi=(-90-phi)/200;
dteta=-teta/200;
for (i=0;i&lt;200;i++){
phi=phi+dphi;
teta=teta+dteta;
SetExpressionValue(&quot;E10&quot;,phi);
SetExpressionValue(&quot;E11&quot;,teta);
}
SetExpressionValue(&quot;E10&quot;,-90);
SetExpressionValue(&quot;E11&quot;,0);
</Script>
<Script Name="vista izquierda" onload="false">
phi=GetExpressionValue(&quot;E10&quot;);
teta=GetExpressionValue(&quot;E11&quot;);
dphi=(90-phi)/200;
dteta=-teta/200;
for (i=0;i&lt;200;i++){
phi=phi+dphi;
teta=teta+dteta;
SetExpressionValue(&quot;E10&quot;,phi);
SetExpressionValue(&quot;E11&quot;,teta);
}
SetExpressionValue(&quot;E10&quot;,90);
SetExpressionValue(&quot;E11&quot;,0);
</Script>
<Script Name="vista estándar" onload="false">
SetExpressionValue(&quot;E10&quot;,&quot;-100*windowcx&quot;);
SetExpressionValue(&quot;E11&quot;,&quot;100*windowcy&quot;);
</Script>
<Construction>
<Window x="0.42325882781637736" y="0.2640459857446189" w="4.489848193237493"/>
<Windowdim w="1280" h="800"/>
<Preferences arrowsize="15" selectionsize="5" monkeyspeed="10" gridopacity="13" colorbackgroundx="139" colorbackgroundy="9" colorbackgroundPal="4" fig3D="true" figDP="false"/>
<CTRLcheckbox Ename="a" x="79" y="0" w="30" h="22" showC="true" showU="false" showV="false" hidden="false" C="Piso" U="°" V="0"/>
<CTRLcheckbox Ename="b" x="79" y="25" w="30" h="22" showC="true" showU="false" showV="false" hidden="false" C="sistema de coordenadas" U="°" V="1"/>
<Objects>
<Text name="Text2" n="209" type="thin" x="windowcx-windoww+3/pixel" y="windowcy-windowh/2+25/pixel" fixed="true">Utilizar el clic derechno para hacer girar</Text>
<Expression name="E10" n="60" color="1" type="thick" hidden="true" showname="true" showvalue="true" x="windowcx-windoww+3/pixel" y="windowcy+windowh/2-60/pixel" value="-100*windowcx" prompt="Phi" fixed="true">Expression &quot;-100*windowcx&quot; à -4.02299, 4.3912</Expression>
<Expression name="E11" n="61" color="1" type="thick" hidden="true" showname="true" showvalue="true" x="windowcx-windoww+3/pixel" y="windowcy+windowh/2-90/pixel" value="100*windowcy" prompt="Theta" fixed="true">Expression &quot;100*windowcy&quot; à -4.02299, 3.95524</Expression>
<Expression name="a" n="210" color="1" type="thick" hidden="super" showname="true" showvalue="true" x="0.21596738144686745" y="0.1250337471534495" value="0" prompt="Valeur">Expression &quot;0&quot; à 0.21597, 0.12503</Expression>
<Expression name="E9" n="59" color="1" type="thin" showname="true" showvalue="true" ctag0="superhidden" cexpr0="a==0" x="-3.339120291073775" y="3.0432051838371934" value="3" prompt="grid">Expression &quot;3&quot; à -3.33912, 3.04321</Expression>
<Expression name="b" n="211" color="1" type="thick" hidden="super" showname="true" showvalue="true" x="-0.011366704286676745" y="0.06820022572006312" value="1" prompt="Valeur">Expression &quot;1&quot; à -0.01137, 0.0682</Expression>
<Point name="P66" n="172" color="2" hidden="true" x="windowcx-windoww-20/pixel" actx="-4.229708282523296" y="(windoww/(windoww-d(windoww)))*(y(P66)-windowcy)+windowcy+d(windowcy)" acty="3.060354948199551" shape="circle" fixed="true">Point</Point>
<Point name="O" n="57" type="thick" ctag0="z" cexpr0="7" ctag1="hidden" cexpr1="@b==0" x="(windoww/(windoww-d(windoww)))*(x(O)-windowcx)+windowcx+d(windowcx)" actx="0.46872564496308566" y="(windoww/(windoww-d(windoww)))*(y(O)-windowcy)+windowcy+d(windowcy)" acty="0.2810960421746347" shape="circle" is3D="true" x3D="0.0" y3D="0.0" z3D="0.0" fixed="true">Point</Point>
<Point name="P45" n="62" color="2" hidden="super" bold="true" large="true" x="x(O)+1" actx="1.4687256449630857" y="y(O)" acty="0.2810960421746347" fixed="true">Point à &quot;x(P2)+1&quot;, &quot;y(P2)&quot; </Point>
<Angle name="a9" n="63" color="1" hidden="super" unit="∞" large="true" first="O" root="O" fixed="90" inverse="true">Angle O - O de mesure 90</Angle>
<Point name="P46" n="65" color="2" type="thick" hidden="super" bold="true" large="true" ctag0="z" cexpr0="7" x="x(O)+1" actx="1.4687256449630857" y="y(O)" acty="0.2810960421746347" shape="circle" fixed="true">Point sur r1 </Point>
<Expression name="E12" n="174" color="3" type="thick" hidden="true" showname="true" showvalue="true" bold="true" large="true" x="x(P66)" y="y(P66)+windoww/24" value="2" prompt="Nombre de divisions" fixed="true">Expression &quot;2&quot; à -4.27913, 3.24743</Expression>
<Point name="P68" n="175" color="5" hidden="super" showname="true" large="true" x="x(P66)+windoww/8" actx="-3.6684772583686094" y="y(P66)-windoww/12" acty="2.6862009320964266" shape="circle" fixed="true">Point</Point>
<Ray name="r3" n="64" color="2" hidden="super" bold="true" large="true" from="O" to="P45">Demi-droite d&apos;origine P44 vers P45</Ray>
<Point name="P47" n="66" color="2" hidden="super" showname="true" xcoffset="-0.05429864253393646" ycoffset="-6.742081447796977E-6" keepclose="true" bold="true" large="true" x="x(O)" actx="0.46872564496308566" y="y(O)+d(O,P46)" acty="1.2810960421746347" shape="dot" fixed="true">Point à &quot;x(P2)&quot;, &quot;y(P2)+d(P2,po8)&quot; </Point>
<Segment name="s15" n="67" color="2" hidden="super" bold="true" large="true" ctag0="z" cexpr0="7" from="O" to="P46" arrow="true">Segment de P44 à P46</Segment>
<Point name="P69" n="176" color="5" hidden="super" large="true" x="x(P68)+3*windoww" actx="9.80106732134387" y="y(P68)" acty="2.6862009320964266" shape="circle" fixed="true">Point</Point>
<Point name="P70" n="177" color="5" hidden="super" showname="true" large="true" x="x(P68)" actx="-3.6684772583686094" y="y(P66)" acty="3.060354948199551" shape="circle" fixed="true">Point</Point>
<Segment name="s16" n="68" color="2" hidden="super" bold="true" large="true" ctag0="z" cexpr0="7" from="O" to="P47" arrow="true">Segment de P44 à P47</Segment>
<Segment name="s24" n="178" color="5" hidden="super" large="true" from="P68" to="P69">Segment de P68 à P69</Segment>
<Point name="X" alias="X" n="69" color="3" type="thin" showname="true" xcoffset="-0.23757732805165954" ycoffset="-0.07533417064110326" keepclose="true" bold="true" large="true" ctag0="z" cexpr0="7" ctag1="hidden" cexpr1="b==0" x="x(O)+s15*sin(E10)" actx="-0.2046209206376014" y="y(O)-s16*cos(E10)*sin(E11)" acty="-0.04768789704438847" shape="dot" is3D="true" x3D="1.0" y3D="0.0" z3D="0.0" fixed="true">Point à &quot;x(P2)+s5*sin(a1)&quot;, &quot;y(P2)-s6*cos(a1)*sin(a2)&quot; </Point>
<Point name="Y" alias="Y" n="70" color="5" type="thin" showname="true" xcoffset="0.05190351386152203" ycoffset="-0.01168034001854501" keepclose="true" bold="true" large="true" ctag0="z" cexpr0="7" ctag1="hidden" cexpr1="b==0" x="x(O)+s15*cos(E10)" actx="1.2080526379734584" y="y(O)+s16*sin(E10)*sin(E11)" acty="-0.01834593463776646" shape="dot" is3D="true" x3D="0.0" y3D="1.0" z3D="0.0" fixed="true">Point à &quot;x(P2)+s5*cos(a1)&quot;, &quot;y(P2)+s6*sin(a1)*sin(a2)&quot; </Point>
<Point name="Z" alias="Z" n="71" color="2" type="thin" showname="true" xcoffset="-0.01669997779258381" ycoffset="0.3527600362915684" keepclose="true" bold="true" large="true" ctag0="z" cexpr0="7" ctag1="hidden" cexpr1="b==0" x="x(O)" actx="0.46872564496308566" y="y(O)+s16*cos(E11)" acty="1.1767721129917037" shape="dot" is3D="true" x3D="0.0" y3D="0.0" z3D="1.0" fixed="true">Point à &quot;x(P2)&quot;, &quot;y(P2)+s6*cos(a2)&quot; </Point>
<Point name="P51" n="75" color="2" hidden="super" showname="true" bold="true" x="x(X)+x(O)-x(O)" actx="-0.2046209206376014" y="y(X)+y(O)-y(O)" acty="-0.04768789704438847" shape="circle" fixed="true">Point à &quot;x(C)+x(B)-x(A)&quot;, &quot;y(C)+y(B)-y(A)&quot; </Point>
<Angle name="a10" n="76" color="3" hidden="super" unit="∞" large="true" first="X" root="O" fixed="90" acute="true">Angle X - O de mesure 90</Angle>
<Point name="P52" n="77" color="2" hidden="super" showname="true" bold="true" x="x(Y)+x(X)-x(O)" actx="0.5347060723727712" y="y(Y)+y(X)-y(O)" acty="-0.3471298738567896" shape="circle" fixed="true">Point à &quot;x(C)+x(B)-x(A)&quot;, &quot;y(C)+y(B)-y(A)&quot; </Point>
<Angle name="a11" n="78" color="1" hidden="super" unit="∞" large="true" first="X" root="O" fixed="90" inverse="true">Angle X - O de mesure 90</Angle>
<Angle name="a12" n="79" color="3" hidden="super" unit="∞" large="true" first="Y" root="O" fixed="90" acute="true">Angle Y - O de mesure 90</Angle>
<Segment name="s6" n="189" color="2" ctag0="z" cexpr0="7" ctag1="hidden" cexpr1="b==0" from="O" to="Z" is3D="true" arrow="true">Segment de O à Z</Segment>
<Segment name="s7" n="192" color="3" ctag0="z" cexpr0="7" ctag1="hidden" cexpr1="b==0" from="O" to="X" is3D="true" arrow="true">Segment de O à X</Segment>
<Segment name="s8" n="195" color="5" ctag0="z" cexpr0="7" ctag1="hidden" cexpr1="b==0" from="O" to="Y" is3D="true" arrow="true">Segment de O à Y</Segment>
<Point name="P61" n="105" color="1" type="thick" hidden="super" large="true" x="x(O)+(E9)*(x(X)-x(O))+(E9)*(x(Y)-x(O))+(0)*(x(Z)-x(O))" actx="0.6666669271921428" y="y(O)+(E9)*(y(X)-y(O))+(E9)*(y(Y)-y(O))+(0)*(y(Z)-y(O))" acty="-1.6035817059196382" shape="circle" is3D="true" x3D="E9" actx3D="3.0" y3D="E9" acty3D="3.0" z3D="0" actz3D="0.0" fixed="true" fixed3D="true">Point</Point>
<Point name="P62" n="106" color="1" type="thick" hidden="super" large="true" x="x(O)+(-E9)*(x(X)-x(O))+(-E9)*(x(Y)-x(O))+(0)*(x(Z)-x(O))" actx="0.2707843627340285" y="y(O)+(-E9)*(y(X)-y(O))+(-E9)*(y(Y)-y(O))+(0)*(y(Z)-y(O))" acty="2.165773790268908" shape="circle" is3D="true" x3D="-E9" actx3D="-3.0" y3D="-E9" acty3D="-3.0" z3D="0" actz3D="0.0" fixed="true" fixed3D="true">Point</Point>
<Point name="P63" n="107" color="1" type="thick" hidden="super" large="true" x="x(O)+(E9)*(x(X)-x(O))+(-E9)*(x(Y)-x(O))+(0)*(x(Z)-x(O))" actx="-3.7692950308700937" y="y(O)+(E9)*(y(X)-y(O))+(-E9)*(y(Y)-y(O))+(0)*(y(Z)-y(O))" acty="0.19307015495476865" shape="circle" is3D="true" x3D="E9" actx3D="3.0" y3D="-E9" acty3D="-3.0" z3D="0" actz3D="0.0" fixed="true" fixed3D="true">Point</Point>
<Point name="P64" n="108" color="1" type="thick" hidden="super" large="true" x="x(O)+(-E9)*(x(X)-x(O))+(E9)*(x(Y)-x(O))+(0)*(x(Z)-x(O))" actx="4.706746320796265" y="y(O)+(-E9)*(y(X)-y(O))+(E9)*(y(Y)-y(O))+(0)*(y(Z)-y(O))" acty="0.36912192939450084" shape="circle" is3D="true" x3D="-E9" actx3D="-3.0" y3D="E9" acty3D="3.0" z3D="0" actz3D="0.0" fixed="true" fixed3D="true">Point</Point>
<Line name="l16" n="80" color="2" hidden="super" large="true" from="O" to="P51">Droite passant par P44 et P51</Line>
<Circle name="c4" n="24" color="2" large="true" fixed="(1+floor(4*windoww/d(P52,O)))*d(P52,O)" midpoint="O" acute="true">Cercle de centre P44 de rayon (1+floor(4*windoww/d(P52,P44)))*d(P52,P44)</Circle>
<Line name="l17" n="81" color="2" hidden="super" large="true" from="O" to="P52">Droite passant par P44 et P52</Line>
<Circle name="c5" n="26" color="1" hidden="super" large="true" fixed="E9*d(O,P52)" midpoint="O" acute="true">Cercle de centre P44 de rayon E9*d(P44,P52)</Circle>
<Polygon name="poly26" n="109" color="4" background="true" large="true" ctag0="brown" cexpr0="poly26&lt;0" ctag1="solid" cexpr1="poly26&lt;0" ctag2="z" cexpr2="if(poly26&lt;0,5,10)" ctag3="superhidden" cexpr3="a==0" point1="P62" point2="P64" point3="P61" point4="P63">Polygone P62, P64, P61, P63</Polygon>
<Segment name="s23" n="113" color="2" large="true" ctag0="superhidden" cexpr0="a==0" from="P64" to="P62" is3D="true">Segment de P64 à P62</Segment>
<Segment name="s20" n="110" color="2" large="true" ctag0="superhidden" cexpr0="a==0" from="P62" to="P63" is3D="true">Segment de P62 à P63</Segment>
<Segment name="s21" n="111" color="2" large="true" ctag0="superhidden" cexpr0="a==0" from="P63" to="P61" is3D="true">Segment de P63 à P61</Segment>
<Segment name="s22" n="112" color="2" large="true" ctag0="superhidden" cexpr0="a==0" from="P61" to="P64" is3D="true">Segment de P61 à P64</Segment>
<Intersection name="I14" n="82" color="1" hidden="super" large="true" first="a11" second="c4" shape="circle" which="first">Intersection entre a11 et c4</Intersection>
<Intersection name="I15" n="83" color="3" hidden="super" large="true" first="a12" second="c4" shape="circle" which="first">Intersection entre a12 et c4</Intersection>
<Intersection name="I16" n="84" color="2" type="thick" hidden="super" showname="true" large="true" first="l17" second="c5" shape="circle" which="second">Intersection entre l17 et c5</Intersection>
<Point name="P53" n="85" color="1" hidden="super" bold="true" x="x(I14)+x(X)-x(O)" actx="-8.242358880534688" y="y(I14)+y(X)-y(O)" acty="16.413527524094512" shape="circle" fixed="true">Point à &quot;x(C)+x(B)-x(A)&quot;, &quot;y(C)+y(B)-y(A)&quot; </Point>
<Point name="P54" n="86" color="3" hidden="super" bold="true" x="x(I15)+x(Y)-x(O)" actx="8.084877832826063" y="y(I15)+y(Y)-y(O)" acty="16.960644609341934" shape="circle" fixed="true">Point à &quot;x(C)+x(B)-x(A)&quot;, &quot;y(C)+y(B)-y(A)&quot; </Point>
<Point name="P55" n="87" color="1" hidden="super" showname="true" bold="true" x="x(I16)+x(X)-x(O)" actx="-0.4025622028666581" y="y(I16)+y(X)-y(O)" acty="1.8369898510498843" shape="circle" fixed="true">Point à &quot;x(C)+x(B)-x(A)&quot;, &quot;y(C)+y(B)-y(A)&quot; </Point>
<Point name="P56" n="88" color="1" hidden="super" showname="true" bold="true" x="x(I16)+x(Y)-x(O)" actx="1.0101113557444017" y="y(I16)+y(Y)-y(O)" acty="1.8663318134565063" shape="circle" fixed="true">Point à &quot;x(C)+x(B)-x(A)&quot;, &quot;y(C)+y(B)-y(A)&quot; </Point>
<Point name="P57" n="89" color="2" type="thick" hidden="super" x="2*x(O)-x(I16)" actx="0.6666669271921424" y="2*y(O)-y(I16)" acty="-1.603581705919638" shape="circle" fixed="true">Point</Point>
<Line name="l18" n="90" color="1" hidden="super" large="true" from="I14" to="P53">Droite passant par I14 et P53</Line>
<Line name="l19" n="91" color="3" hidden="super" large="true" from="P54" to="I15">Droite passant par P54 et I15</Line>
<Point name="P58" n="92" color="2" type="thick" hidden="super" bold="true" x="x(P57)+x(I16)-x(P55)" actx="1.3400134927928296" y="y(P57)+y(I16)-y(P55)" acty="-1.274797766700615" shape="circle" fixed="true">Point à &quot;x(C)+x(B)-x(A)&quot;, &quot;y(C)+y(B)-y(A)&quot; </Point>
<Point name="P59" n="93" color="2" type="thick" hidden="super" bold="true" x="x(P57)+x(I16)-x(P56)" actx="-0.07266006581823037" y="y(P57)+y(I16)-y(P56)" acty="-1.304139729107237" shape="circle" fixed="true">Point à &quot;x(C)+x(B)-x(A)&quot;, &quot;y(C)+y(B)-y(A)&quot; </Point>
<Line name="l20" n="94" color="1" hidden="super" large="true" from="I16" to="P55">Droite passant par I16 et P55</Line>
<Line name="l21" n="95" color="1" hidden="super" large="true" from="I16" to="P56">Droite passant par I16 et P56</Line>
<Intersection name="I17" n="96" color="1" hidden="super" showname="true" large="true" first="l17" second="l18" shape="circle">Intersection entre l17 et l18</Intersection>
<Intersection name="I18" n="97" color="3" hidden="super" showname="true" large="true" first="l17" second="l19" shape="circle">Intersection entre l17 et l19</Intersection>
<Line name="l22" n="98" color="1" hidden="super" large="true" from="P57" to="P58">Droite passant par P57 et P58</Line>
<Line name="l23" n="99" color="1" hidden="super" large="true" from="P57" to="P59">Droite passant par P57 et P59</Line>
<Point name="P60" n="100" color="5" type="thick" hidden="super" showname="true" large="true" x="if(d(O,I17)&gt;d(O,I18),x(I17),x(I18))" actx="-1.6992668530459256" y="if(d(O,I17)&gt;d(O,I18),y(I17),y(I18))" acty="20.923415688789024" shape="circle" fixed="true">Point</Point>
<Intersection name="I19" n="101" color="1" hidden="super" showname="true" large="true" first="l23" second="l20" shape="circle">Intersection entre l23 et l20</Intersection>
<Intersection name="I20" n="102" color="1" hidden="super" showname="true" large="true" first="l22" second="l21" shape="circle">Intersection entre l22 et l21</Intersection>
<Function name="f24" n="103" color="1" type="thin" large="true" ctag0="z" cexpr0="9" ctag1="superhidden" cexpr1="a==0" x="if(floor(t/2)==(t/2),if(floor(t/4)==(t/4),x(I16)+(t/2)*(x(P56)-x(I16)),x(I19)+(t/2)*(x(P56)-x(I16))),if(floor((t-1)/4)==(t-1)/4,x(I16)+((t+1)/2)*(x(P56)-x(I16)),x(I19)+((t+1)/2)*(x(P56)-x(I16))))" y="if(floor(t/2)==(t/2),if(floor(t/4)==(t/4),y(I16)+(t/2)*(y(P56)-y(I16)),y(I19)+(t/2)*(y(P56)-y(I16))),if(floor((t-1)/4)==(t-1)/4,y(I16)+((t+1)/2)*(y(P56)-y(I16)),y(I19)+((t+1)/2)*(y(P56)-y(I16))))" var="t" min="0" max="floor(((y(I20)-y(I16))/(y(P56)-y(I16)))*2)-1" d="1" shape="cross" color="1">Fonction ( if(floor(t/2)==(t/2),if(floor(t/4)==(t/4),x(I16)+(t/2)*(x(P56)-x(I16)),x(I19)+(t/2)*(x(P56)-x(I16))),if(floor((t-1)/4)==(t-1)/4,x(I16)+((t+1)/2)*(x(P56)-x(I16)),x(I19)+((t+1)/2)*(x(P56)-x(I16)))) , if(floor(t/2)==(t/2),if(floor(t/4)==(t/4),y(I16)+(t/2)*(y(P56)-y(I16)),y(I19)+(t/2)*(y(P56)-y(I16))),if(floor((t-1)/4)==(t-1)/4,y(I16)+((t+1)/2)*(y(P56)-y(I16)),y(I19)+((t+1)/2)*(y(P56)-y(I16)))) )</Function>
<Function name="f25" n="104" color="1" type="thin" large="true" ctag0="z" cexpr0="9" ctag1="superhidden" cexpr1="a==0" x="if(floor(t/2)==(t/2),if(floor(t/4)==(t/4),x(I16)+(t/2)*(x(P55)-x(I16)),x(I20)+(t/2)*(x(P55)-x(I16))),if(floor((t-1)/4)==(t-1)/4,x(I16)+((t+1)/2)*(x(P55)-x(I16)),x(I20)+((t+1)/2)*(x(P55)-x(I16))))" y="if(floor(t/2)==(t/2),if(floor(t/4)==(t/4),y(I16)+(t/2)*(y(P55)-y(I16)),y(I20)+(t/2)*(y(P55)-y(I16))),if(floor((t-1)/4)==(t-1)/4,y(I16)+((t+1)/2)*(y(P55)-y(I16)),y(I20)+((t+1)/2)*(y(P55)-y(I16))))" var="t" min="0" max="floor(((x(I19)-x(I16))/(x(P55)-x(I16)))*2)-1" d="1" shape="cross" color="1">Fonction ( if(floor(t/2)==(t/2),if(floor(t/4)==(t/4),x(I16)+(t/2)*(x(P55)-x(I16)),x(I20)+(t/2)*(x(P55)-x(I16))),if(floor((t-1)/4)==(t-1)/4,x(I16)+((t+1)/2)*(x(P55)-x(I16)),x(I20)+((t+1)/2)*(x(P55)-x(I16)))) , if(floor(t/2)==(t/2),if(floor(t/4)==(t/4),y(I16)+(t/2)*(y(P55)-y(I16)),y(I20)+(t/2)*(y(P55)-y(I16))),if(floor((t-1)/4)==(t-1)/4,y(I16)+((t+1)/2)*(y(P55)-y(I16)),y(I20)+((t+1)/2)*(y(P55)-y(I16)))) )</Function>
</Objects>
</Construction>
</CaR>

101
base3D-fr-modifs.zir

@ -0,0 +1,101 @@
<?xml version="1.0" encoding="utf-8"?>
<CaR>
<Script Name="vue d&apos;avion" onload="false">
phi=GetExpressionValue(&quot;E10&quot;);
theta=GetExpressionValue(&quot;E11&quot;);
dphi=(90-phi)/200;
dtheta=(90-theta)/200;
for (i=0;i&lt;200;i++){
phi=phi+dphi;
SetExpressionValue(&quot;E10&quot;,phi);
theta=theta+dtheta;
SetExpressionValue(&quot;E11&quot;,theta);
}
SetExpressionValue(&quot;E10&quot;,90);
SetExpressionValue(&quot;E11&quot;,90);
</Script>
<Script Name="vue de face" onload="false">
phi=GetExpressionValue(&quot;E10&quot;);
theta=GetExpressionValue(&quot;E11&quot;);
dphi=-phi/200;
dtheta=-theta/200;
for (i=0;i&lt;200;i++){
phi=phi+dphi;
SetExpressionValue(&quot;E10&quot;,phi);
theta=theta+dtheta;
SetExpressionValue(&quot;E11&quot;,theta);
}
SetExpressionValue(&quot;E10&quot;,0);
SetExpressionValue(&quot;E11&quot;,0);
</Script>
<Script Name="vue de droite" onload="false">
phi=GetExpressionValue(&quot;E10&quot;);
theta=GetExpressionValue(&quot;E11&quot;);
dphi=(-90-phi)/200;
dtheta=-theta/200;
for (i=0;i&lt;200;i++){
phi=phi+dphi;
theta=theta+dtheta;
SetExpressionValue(&quot;E10&quot;,phi);
SetExpressionValue(&quot;E11&quot;,theta);
}
SetExpressionValue(&quot;E10&quot;,-90);
SetExpressionValue(&quot;E11&quot;,0);
</Script>
<Script Name="vue de gauche" onload="false">
phi=GetExpressionValue(&quot;E10&quot;);
theta=GetExpressionValue(&quot;E11&quot;);
dphi=(90-phi)/200;
dtheta=-theta/200;
for (i=0;i&lt;200;i++){
phi=phi+dphi;
theta=theta+dtheta;
SetExpressionValue(&quot;E10&quot;,phi);
SetExpressionValue(&quot;E11&quot;,theta);
}
SetExpressionValue(&quot;E10&quot;,90);
SetExpressionValue(&quot;E11&quot;,0);
</Script>
<Script Name="retour en vue mobile" onload="false">
SetExpressionValue(&quot;E10&quot;,&quot;-100*windowcx&quot;);
SetExpressionValue(&quot;E11&quot;,&quot;100*windowcy&quot;);
</Script>
<Construction>
<Window x="0.42325882781637736" y="0.2640459857446189" w="4.489848193237493"/>
<Windowdim w="1280" h="800"/>
<Preferences minfontsize="13" minpointsize="3" minlinesize="1" arrowsize="15" selectionsize="5" monkeyspeed="10" gridopacity="13" digits.lengths="5" digits.edit="5" digits.angles="0" colorbackground="245,245,245" colorbackgroundx="139" colorbackgroundy="9" colorbackgroundPal="4" fig3D="true" figDP="false"/>
<CTRLcheckbox Ename="sol" x="79" y="0" w="30" h="22" showC="true" showU="false" showV="false" hidden="false" C="Sol" U="°" V="0"/>
<CTRLcheckbox Ename="repere" x="79" y="25" w="30" h="22" showC="true" showU="false" showV="false" hidden="false" C="Repère" U="°" V="1"/>
<Objects>
<Expression name="E10" n="0" color="1" type="thick" hidden="true" showname="true" showvalue="true" ctag0="superhidden" cexpr0="@b==0" x="windowcx-windoww+3/pixel" y="windowcy+windowh/2-60/pixel" value="-100*windowcx" prompt="phi" fixed="true">Expression &quot;-100*windowcx&quot; à -4.02299, 4.3912</Expression>
<Expression name="E11" n="1" color="1" type="thick" hidden="true" showname="true" showvalue="true" ctag0="superhidden" cexpr0="@b==0" x="windowcx-windoww+3/pixel" y="windowcy+windowh/2-90/pixel" value="100*windowcy" prompt="theta" fixed="true">Expression &quot;100*windowcy&quot; à -4.02299, 3.95524</Expression>
<Expression name="sol" n="2" color="1" type="thick" hidden="super" showname="true" showvalue="true" x="0.21596738144686745" y="0.1250337471534495" value="0" prompt="Valeur">Expression &quot;0&quot; à 0.21597, 0.12503</Expression>
<Expression name="repere" n="3" color="1" type="thick" hidden="super" showname="true" showvalue="true" x="-0.011366704286676745" y="0.06820022572006312" value="1" prompt="Valeur">Expression &quot;1&quot; à -0.01137, 0.0682</Expression>
<Expression name="grid" n="11" color="4" type="thick" hidden="true" showname="true" showvalue="true" ctag0="superhidden" cexpr0="sol==0" x="windowcx-windoww+3/pixel" y="windowcy+windowh/2-120/pixel" value="3" prompt="grid" fixed="true">Expression &quot;3&quot; à -4.02299, 3.51927</Expression>
<Text name="Text2" n="22" type="thin" x="windowcx-windoww+3/pixel" y="windowcy-windowh/2+25/pixel" fixed="true">Utiliser le clic-droit glisser pour faire pivoter</Text>
<Point name="O" n="4" type="thick" ctag0="z" cexpr0="7" ctag1="superhidden" cexpr1="repere==0" x="(windoww/(windoww-d(windoww)))*(x(O)-windowcx)+windowcx+d(windowcx)" actx="0.46872564496308566" y="(windoww/(windoww-d(windoww)))*(y(O)-windowcy)+windowcy+d(windowcy)" acty="0.2810960421746347" shape="circle" is3D="true" x3D="0.0" y3D="0.0" z3D="0.0" fixed="true">Point</Point>
<Point name="X" n="5" color="3" type="thin" showname="true" xcoffset="-0.23757732805165954" ycoffset="-0.07533417064110326" keepclose="true" bold="true" large="true" ctag0="z" cexpr0="7" ctag1="superhidden" cexpr1="repere==0" x="x(O)+sin(E10)" actx="-0.2046209206376014" y="y(O)-cos(E10)*sin(E11)" acty="-0.04768789704438847" shape="dot" is3D="true" x3D="1.0" y3D="0.0" z3D="0.0" fixed="true">Point</Point>
<Point name="Y" n="6" color="5" type="thin" showname="true" xcoffset="0.05190351386152203" ycoffset="-0.01168034001854501" keepclose="true" bold="true" large="true" ctag0="z" cexpr0="7" ctag1="superhidden" cexpr1="repere==0" x="x(O)+cos(E10)" actx="1.2080526379734584" y="y(O)+sin(E10)*sin(E11)" acty="-0.01834593463776646" shape="dot" is3D="true" x3D="0.0" y3D="1.0" z3D="0.0" fixed="true">Point</Point>
<Point name="Z" n="7" color="2" type="thin" showname="true" xcoffset="-0.01669997779258381" ycoffset="0.3527600362915684" keepclose="true" bold="true" large="true" ctag0="z" cexpr0="7" ctag1="superhidden" cexpr1="repere==0" x="x(O)" actx="0.46872564496308566" y="y(O)+cos(E11)" acty="1.1767721129917037" shape="dot" is3D="true" x3D="0.0" y3D="0.0" z3D="1.0" fixed="true">Point</Point>
<Segment name="i" n="8" color="3" ctag0="z" cexpr0="7" ctag1="superhidden" cexpr1="repere==0" from="O" to="X" is3D="true" arrow="true">Vecteur de O à X</Segment>
<Segment name="j" n="9" color="5" ctag0="z" cexpr0="7" ctag1="superhidden" cexpr1="repere==0" from="O" to="Y" is3D="true" arrow="true">Vecteur de O à Y</Segment>
<Segment name="k" n="10" color="2" ctag0="z" cexpr0="7" ctag1="superhidden" cexpr1="repere==0" from="O" to="Z" is3D="true" arrow="true">Vecteur de O à Z</Segment>
<Point name="p1" n="12" color="2" hidden="super" showname="true" bold="true" x="x(Y)+x(X)-x(O)" actx="0.5347060723727712" y="y(Y)+y(X)-y(O)" acty="-0.3471298738567896" shape="circle" fixed="true">Point</Point>
<Circle name="c1" n="13" color="1" hidden="super" large="true" fixed="grid*d(O,p1)" midpoint="O" acute="true">Cercle de centre O de rayon grid*d(O,p1)</Circle>
<Line name="l1" n="14" color="2" hidden="super" large="true" from="O" to="p1">Droite passant par O et p1</Line>
<Intersection name="i1" n="15" color="2" type="thick" hidden="super" showname="true" large="true" first="l1" second="c1" shape="circle" which="second">Intersection entre l1 et c1</Intersection>
<Point name="p2" n="16" color="1" hidden="super" showname="true" bold="true" x="x(i1)+x(Y)-x(O)" actx="1.0101113557444017" y="y(i1)+y(Y)-y(O)" acty="1.8663318134565063" shape="circle" fixed="true">Point</Point>
<Point name="p3" n="17" color="1" hidden="super" showname="true" bold="true" x="x(i1)+2*grid*(x(X)-x(O))" actx="-3.769295030870093" y="y(i1)+2*grid*(y(X)-y(O))" acty="0.19307015495476842" shape="circle" fixed="true">Point</Point>
<Point name="p4" n="18" color="1" hidden="super" showname="true" bold="true" x="x(i1)+2*grid*(x(Y)-x(O))" actx="4.706746320796265" y="y(i1)+2*grid*(y(Y)-y(O))" acty="0.3691219293945005" shape="circle" fixed="true">Point</Point>
<Point name="p5" n="20" color="1" hidden="super" showname="true" bold="true" x="x(i1)+x(X)-x(O)" actx="-0.4025622028666581" y="y(i1)+y(X)-y(O)" acty="1.8369898510498843" shape="circle" fixed="true">Point</Point>
<Point name="p6" n="23" color="1" hidden="super" showname="true" bold="true" x="2*x(O)-x(i1)" actx="0.6666669271921424" y="2*y(O)-y(i1)" acty="-1.603581705919638" shape="circle" fixed="true">Point</Point>
<Function name="g1" n="19" color="1" type="thin" large="true" ctag0="z" cexpr0="9" ctag1="superhidden" cexpr1="sol==0" x="if(floor(t/2)==(t/2),if(floor(t/4)==(t/4),x(i1)+(t/2)*(x(p2)-x(i1)),x(p3)+(t/2)*(x(p2)-x(i1))),if(floor((t-1)/4)==(t-1)/4,x(i1)+((t+1)/2)*(x(p2)-x(i1)),x(p3)+((t+1)/2)*(x(p2)-x(i1))))" y="if(floor(t/2)==(t/2),if(floor(t/4)==(t/4),y(i1)+(t/2)*(y(p2)-y(i1)),y(p3)+(t/2)*(y(p2)-y(i1))),if(floor((t-1)/4)==(t-1)/4,y(i1)+((t+1)/2)*(y(p2)-y(i1)),y(p3)+((t+1)/2)*(y(p2)-y(i1))))" var="t" min="0" max="floor(((y(p4)-y(i1))/(y(p2)-y(i1)))*2)-1" d="1" shape="cross" color="1">Fonction ( if(floor(t/2)==(t/2),if(floor(t/4)==(t/4),x(i1)+(t/2)*(x(p2)-x(i1)),x(p3)+(t/2)*(x(p2)-x(i1))),if(floor((t-1)/4)==(t-1)/4,x(i1)+((t+1)/2)*(x(p2)-x(i1)),x(p3)+((t+1)/2)*(x(p2)-x(i1)))) , if(floor(t/2)==(t/2),if(floor(t/4)==(t/4),y(i1)+(t/2)*(y(p2)-y(i1)),y(p3)+(t/2)*(y(p2)-y(i1))),if(floor((t-1)/4)==(t-1)/4,y(i1)+((t+1)/2)*(y(p2)-y(i1)),y(p3)+((t+1)/2)*(y(p2)-y(i1)))) )</Function>
<Function name="g2" n="21" color="1" type="thin" large="true" ctag0="z" cexpr0="9" ctag1="superhidden" cexpr1="sol==0" x="if(floor(t/2)==(t/2),if(floor(t/4)==(t/4),x(i1)+(t/2)*(x(p5)-x(i1)),x(p4)+(t/2)*(x(p5)-x(i1))),if(floor((t-1)/4)==(t-1)/4,x(i1)+((t+1)/2)*(x(p5)-x(i1)),x(p4)+((t+1)/2)*(x(p5)-x(i1))))" y="if(floor(t/2)==(t/2),if(floor(t/4)==(t/4),y(i1)+(t/2)*(y(p5)-y(i1)),y(p4)+(t/2)*(y(p5)-y(i1))),if(floor((t-1)/4)==(t-1)/4,y(i1)+((t+1)/2)*(y(p5)-y(i1)),y(p4)+((t+1)/2)*(y(p5)-y(i1))))" var="t" min="0" max="floor(((x(p3)-x(i1))/(x(p5)-x(i1)))*2)-1" d="1" shape="cross" color="1">Fonction ( if(floor(t/2)==(t/2),if(floor(t/4)==(t/4),x(i1)+(t/2)*(x(p5)-x(i1)),x(p4)+(t/2)*(x(p5)-x(i1))),if(floor((t-1)/4)==(t-1)/4,x(i1)+((t+1)/2)*(x(p5)-x(i1)),x(p4)+((t+1)/2)*(x(p5)-x(i1)))) , if(floor(t/2)==(t/2),if(floor(t/4)==(t/4),y(i1)+(t/2)*(y(p5)-y(i1)),y(p4)+(t/2)*(y(p5)-y(i1))),if(floor((t-1)/4)==(t-1)/4,y(i1)+((t+1)/2)*(y(p5)-y(i1)),y(p4)+((t+1)/2)*(y(p5)-y(i1)))) )</Function>
<Polygon name="polysol" n="24" color="4" background="true" ctag0="brown" cexpr0="polysol&lt;0" ctag1="solid" cexpr1="polysol&lt;0" ctag2="z" cexpr2="if(polysol&lt;0,5,10)" ctag3="superhidden" cexpr3="sol==0" point1="i1" point2="p4" point3="p6" point4="p3">Polygone i1, p4, p6, p3</Polygon>
<Segment name="b1" n="25" color="2" large="true" ctag0="superhidden" cexpr0="sol==0" from="i1" to="p3">Segment de i1 à p3</Segment>
<Segment name="b2" n="26" color="2" large="true" ctag0="superhidden" cexpr0="sol==0" from="p3" to="p6">Segment de p3 à p6</Segment>
<Segment name="b3" n="27" color="2" large="true" ctag0="superhidden" cexpr0="sol==0" from="p6" to="p4">Segment de p6 à p4</Segment>
<Segment name="b4" n="28" color="2" large="true" ctag0="superhidden" cexpr0="sol==0" from="p4" to="i1">Segment de p4 à i1</Segment>
</Objects>
</Construction>
</CaR>

139
base3D-fr.zir

@ -0,0 +1,139 @@
<?xml version="1.0" encoding="utf-8"?>
<CaR>
<Script Name="vue d&apos;avion" onload="false">
phi=GetExpressionValue(&quot;E10&quot;);
teta=GetExpressionValue(&quot;E11&quot;);
dphi=(90-phi)/200;
dteta=(90-teta)/200;
for (i=0;i&lt;200;i++){
phi=phi+dphi;
SetExpressionValue(&quot;E10&quot;,phi);
teta=teta+dteta;
SetExpressionValue(&quot;E11&quot;,teta);
}
SetExpressionValue(&quot;E10&quot;,90);
SetExpressionValue(&quot;E11&quot;,90);
</Script>
<Script Name="vue de face" onload="false">
phi=GetExpressionValue(&quot;E10&quot;);
teta=GetExpressionValue(&quot;E11&quot;);
dphi=-phi/200;
dteta=-teta/200;
for (i=0;i&lt;200;i++){
phi=phi+dphi;
SetExpressionValue(&quot;E10&quot;,phi);
teta=teta+dteta;
SetExpressionValue(&quot;E11&quot;,teta);
}
SetExpressionValue(&quot;E10&quot;,0);
SetExpressionValue(&quot;E11&quot;,0);
</Script>
<Script Name="vue de droite" onload="false">
phi=GetExpressionValue(&quot;E10&quot;);
teta=GetExpressionValue(&quot;E11&quot;);
dphi=(-90-phi)/200;
dteta=-teta/200;
for (i=0;i&lt;200;i++){
phi=phi+dphi;
teta=teta+dteta;
SetExpressionValue(&quot;E10&quot;,phi);
SetExpressionValue(&quot;E11&quot;,teta);
}
SetExpressionValue(&quot;E10&quot;,-90);
SetExpressionValue(&quot;E11&quot;,0);
</Script>
<Script Name="vue de gauche" onload="false">
phi=GetExpressionValue(&quot;E10&quot;);
teta=GetExpressionValue(&quot;E11&quot;);
dphi=(90-phi)/200;
dteta=-teta/200;
for (i=0;i&lt;200;i++){
phi=phi+dphi;
teta=teta+dteta;
SetExpressionValue(&quot;E10&quot;,phi);
SetExpressionValue(&quot;E11&quot;,teta);
}
SetExpressionValue(&quot;E10&quot;,90);
SetExpressionValue(&quot;E11&quot;,0);
</Script>
<Script Name="retour en vue mobile" onload="false">
SetExpressionValue(&quot;E10&quot;,&quot;-100*windowcx&quot;);
SetExpressionValue(&quot;E11&quot;,&quot;100*windowcy&quot;);
</Script>
<Construction>
<Window x="0.42325882781637736" y="0.2640459857446189" w="4.489848193237493"/>
<Windowdim w="1280" h="800"/>
<Preferences arrowsize="15" selectionsize="5" monkeyspeed="10" gridopacity="13" colorbackgroundx="139" colorbackgroundy="9" colorbackgroundPal="4" fig3D="true" figDP="false"/>
<CTRLcheckbox Ename="a" x="79" y="0" w="30" h="22" showC="true" showU="false" showV="false" hidden="false" C="Sol" U="°" V="0"/>
<CTRLcheckbox Ename="b" x="79" y="25" w="30" h="22" showC="true" showU="false" showV="false" hidden="false" C="Repère" U="°" V="1"/>
<Objects>
<Text name="Text2" n="209" type="thin" x="windowcx-windoww+3/pixel" y="windowcy-windowh/2+25/pixel" fixed="true">Utiliser le clic-droit glisser pour faire pivoter</Text>
<Expression name="E10" n="60" color="1" type="thick" hidden="true" showname="true" showvalue="true" x="windowcx-windoww+3/pixel" y="windowcy+windowh/2-60/pixel" value="-100*windowcx" prompt="Phi" fixed="true">Expression &quot;-100*windowcx&quot; à -4.02299, 4.3912</Expression>
<Expression name="E11" n="61" color="1" type="thick" hidden="true" showname="true" showvalue="true" x="windowcx-windoww+3/pixel" y="windowcy+windowh/2-90/pixel" value="100*windowcy" prompt="Theta" fixed="true">Expression &quot;100*windowcy&quot; à -4.02299, 3.95524</Expression>
<Expression name="a" n="210" color="1" type="thick" hidden="super" showname="true" showvalue="true" x="0.21596738144686745" y="0.1250337471534495" value="0" prompt="Valeur">Expression &quot;0&quot; à 0.21597, 0.12503</Expression>
<Expression name="E9" n="59" color="1" type="thin" showname="true" showvalue="true" ctag0="superhidden" cexpr0="a==0" x="-3.339120291073775" y="3.0432051838371934" value="3" prompt="grid">Expression &quot;3&quot; à -3.33912, 3.04321</Expression>
<Expression name="b" n="211" color="1" type="thick" hidden="super" showname="true" showvalue="true" x="-0.011366704286676745" y="0.06820022572006312" value="1" prompt="Valeur">Expression &quot;1&quot; à -0.01137, 0.0682</Expression>
<Point name="P66" n="172" color="2" hidden="true" x="windowcx-windoww-20/pixel" actx="-4.229708282523296" y="(windoww/(windoww-d(windoww)))*(y(P66)-windowcy)+windowcy+d(windowcy)" acty="3.060354948199551" shape="circle" fixed="true">Point</Point>
<Point name="O" n="57" type="thick" ctag0="z" cexpr0="7" ctag1="hidden" cexpr1="@b==0" x="(windoww/(windoww-d(windoww)))*(x(O)-windowcx)+windowcx+d(windowcx)" actx="0.46872564496308566" y="(windoww/(windoww-d(windoww)))*(y(O)-windowcy)+windowcy+d(windowcy)" acty="0.2810960421746347" shape="circle" is3D="true" x3D="0.0" y3D="0.0" z3D="0.0" fixed="true">Point</Point>
<Point name="P45" n="62" color="2" hidden="super" bold="true" large="true" x="x(O)+1" actx="1.4687256449630857" y="y(O)" acty="0.2810960421746347" fixed="true">Point à &quot;x(P2)+1&quot;, &quot;y(P2)&quot; </Point>
<Angle name="a9" n="63" color="1" hidden="super" unit="∞" large="true" first="O" root="O" fixed="90" inverse="true">Angle O - O de mesure 90</Angle>
<Point name="P46" n="65" color="2" type="thick" hidden="super" bold="true" large="true" ctag0="z" cexpr0="7" x="x(O)+1" actx="1.4687256449630857" y="y(O)" acty="0.2810960421746347" shape="circle" fixed="true">Point sur r1 </Point>
<Expression name="E12" n="174" color="3" type="thick" hidden="true" showname="true" showvalue="true" bold="true" large="true" x="x(P66)" y="y(P66)+windoww/24" value="2" prompt="Nombre de divisions" fixed="true">Expression &quot;2&quot; à -4.22971, 3.24743</Expression>
<Point name="P68" n="175" color="5" hidden="super" showname="true" large="true" x="x(P66)+windoww/8" actx="-3.6684772583686094" y="y(P66)-windoww/12" acty="2.6862009320964266" shape="circle" fixed="true">Point</Point>
<Ray name="r3" n="64" color="2" hidden="super" bold="true" large="true" from="O" to="P45">Demi-droite d&apos;origine P44 vers P45</Ray>
<Point name="P47" n="66" color="2" hidden="super" showname="true" xcoffset="-0.05429864253393646" ycoffset="-6.742081447796977E-6" keepclose="true" bold="true" large="true" x="x(O)" actx="0.46872564496308566" y="y(O)+d(O,P46)" acty="1.2810960421746347" shape="dot" fixed="true">Point à &quot;x(P2)&quot;, &quot;y(P2)+d(P2,po8)&quot; </Point>
<Segment name="s15" n="67" color="2" hidden="super" bold="true" large="true" ctag0="z" cexpr0="7" from="O" to="P46" arrow="true">Segment de P44 à P46</Segment>
<Point name="P69" n="176" color="5" hidden="super" large="true" x="x(P68)+3*windoww" actx="9.80106732134387" y="y(P68)" acty="2.6862009320964266" shape="circle" fixed="true">Point</Point>
<Point name="P70" n="177" color="5" hidden="super" showname="true" large="true" x="x(P68)" actx="-3.6684772583686094" y="y(P66)" acty="3.060354948199551" shape="circle" fixed="true">Point</Point>
<Segment name="s16" n="68" color="2" hidden="super" bold="true" large="true" ctag0="z" cexpr0="7" from="O" to="P47" arrow="true">Segment de P44 à P47</Segment>
<Segment name="s24" n="178" color="5" hidden="super" large="true" from="P68" to="P69">Segment de P68 à P69</Segment>
<Point name="X" alias="X" n="69" color="3" type="thin" showname="true" xcoffset="-0.23757732805165954" ycoffset="-0.07533417064110326" keepclose="true" bold="true" large="true" ctag0="z" cexpr0="7" ctag1="hidden" cexpr1="b==0" x="x(O)+s15*sin(E10)" actx="-0.2046209206376014" y="y(O)-s16*cos(E10)*sin(E11)" acty="-0.04768789704438847" shape="dot" is3D="true" x3D="1.0" y3D="0.0" z3D="0.0" fixed="true">Point à &quot;x(P2)+s5*sin(a1)&quot;, &quot;y(P2)-s6*cos(a1)*sin(a2)&quot; </Point>
<Point name="Y" alias="Y" n="70" color="5" type="thin" showname="true" xcoffset="0.05190351386152203" ycoffset="-0.01168034001854501" keepclose="true" bold="true" large="true" ctag0="z" cexpr0="7" ctag1="hidden" cexpr1="b==0" x="x(O)+s15*cos(E10)" actx="1.2080526379734584" y="y(O)+s16*sin(E10)*sin(E11)" acty="-0.01834593463776646" shape="dot" is3D="true" x3D="0.0" y3D="1.0" z3D="0.0" fixed="true">Point à &quot;x(P2)+s5*cos(a1)&quot;, &quot;y(P2)+s6*sin(a1)*sin(a2)&quot; </Point>
<Point name="Z" alias="Z" n="71" color="2" type="thin" showname="true" xcoffset="-0.01669997779258381" ycoffset="0.3527600362915684" keepclose="true" bold="true" large="true" ctag0="z" cexpr0="7" ctag1="hidden" cexpr1="b==0" x="x(O)" actx="0.46872564496308566" y="y(O)+s16*cos(E11)" acty="1.1767721129917037" shape="dot" is3D="true" x3D="0.0" y3D="0.0" z3D="1.0" fixed="true">Point à &quot;x(P2)&quot;, &quot;y(P2)+s6*cos(a2)&quot; </Point>
<Point name="P51" n="75" color="2" hidden="super" showname="true" bold="true" x="x(X)+x(O)-x(O)" actx="-0.2046209206376014" y="y(X)+y(O)-y(O)" acty="-0.04768789704438847" shape="circle" fixed="true">Point à &quot;x(C)+x(B)-x(A)&quot;, &quot;y(C)+y(B)-y(A)&quot; </Point>
<Angle name="a10" n="76" color="3" hidden="super" unit="∞" large="true" first="X" root="O" fixed="90" acute="true">Angle X - O de mesure 90</Angle>
<Point name="P52" n="77" color="2" hidden="super" showname="true" bold="true" x="x(Y)+x(X)-x(O)" actx="0.5347060723727712" y="y(Y)+y(X)-y(O)" acty="-0.3471298738567896" shape="circle" fixed="true">Point à &quot;x(C)+x(B)-x(A)&quot;, &quot;y(C)+y(B)-y(A)&quot; </Point>
<Angle name="a11" n="78" color="1" hidden="super" unit="∞" large="true" first="X" root="O" fixed="90" inverse="true">Angle X - O de mesure 90</Angle>
<Angle name="a12" n="79" color="3" hidden="super" unit="∞" large="true" first="Y" root="O" fixed="90" acute="true">Angle Y - O de mesure 90</Angle>
<Segment name="s6" n="189" color="2" ctag0="z" cexpr0="7" ctag1="hidden" cexpr1="b==0" from="O" to="Z" is3D="true" arrow="true">Segment de O à Z</Segment>
<Segment name="s7" n="192" color="3" ctag0="z" cexpr0="7" ctag1="hidden" cexpr1="b==0" from="O" to="X" is3D="true" arrow="true">Segment de O à X</Segment>
<Segment name="s8" n="195" color="5" ctag0="z" cexpr0="7" ctag1="hidden" cexpr1="b==0" from="O" to="Y" is3D="true" arrow="true">Segment de O à Y</Segment>
<Point name="P61" n="105" color="1" type="thick" hidden="super" large="true" x="x(O)+(E9)*(x(X)-x(O))+(E9)*(x(Y)-x(O))+(0)*(x(Z)-x(O))" actx="0.6666669271921428" y="y(O)+(E9)*(y(X)-y(O))+(E9)*(y(Y)-y(O))+(0)*(y(Z)-y(O))" acty="-1.6035817059196382" shape="circle" is3D="true" x3D="E9" actx3D="3.0" y3D="E9" acty3D="3.0" z3D="0" actz3D="0.0" fixed="true" fixed3D="true">Point</Point>
<Point name="P62" n="106" color="1" type="thick" hidden="super" large="true" x="x(O)+(-E9)*(x(X)-x(O))+(-E9)*(x(Y)-x(O))+(0)*(x(Z)-x(O))" actx="0.2707843627340285" y="y(O)+(-E9)*(y(X)-y(O))+(-E9)*(y(Y)-y(O))+(0)*(y(Z)-y(O))" acty="2.165773790268908" shape="circle" is3D="true" x3D="-E9" actx3D="-3.0" y3D="-E9" acty3D="-3.0" z3D="0" actz3D="0.0" fixed="true" fixed3D="true">Point</Point>
<Point name="P63" n="107" color="1" type="thick" hidden="super" large="true" x="x(O)+(E9)*(x(X)-x(O))+(-E9)*(x(Y)-x(O))+(0)*(x(Z)-x(O))" actx="-3.7692950308700937" y="y(O)+(E9)*(y(X)-y(O))+(-E9)*(y(Y)-y(O))+(0)*(y(Z)-y(O))" acty="0.19307015495476865" shape="circle" is3D="true" x3D="E9" actx3D="3.0" y3D="-E9" acty3D="-3.0" z3D="0" actz3D="0.0" fixed="true" fixed3D="true">Point</Point>
<Point name="P64" n="108" color="1" type="thick" hidden="super" large="true" x="x(O)+(-E9)*(x(X)-x(O))+(E9)*(x(Y)-x(O))+(0)*(x(Z)-x(O))" actx="4.706746320796265" y="y(O)+(-E9)*(y(X)-y(O))+(E9)*(y(Y)-y(O))+(0)*(y(Z)-y(O))" acty="0.36912192939450084" shape="circle" is3D="true" x3D="-E9" actx3D="-3.0" y3D="E9" acty3D="3.0" z3D="0" actz3D="0.0" fixed="true" fixed3D="true">Point</Point>
<Line name="l16" n="80" color="2" hidden="super" large="true" from="O" to="P51">Droite passant par P44 et P51</Line>
<Circle name="c4" n="24" color="2" large="true" fixed="(1+floor(4*windoww/d(P52,O)))*d(P52,O)" midpoint="O" acute="true">Cercle de centre P44 de rayon (1+floor(4*windoww/d(P52,P44)))*d(P52,P44)</Circle>
<Line name="l17" n="81" color="2" hidden="super" large="true" from="O" to="P52">Droite passant par P44 et P52</Line>
<Circle name="c5" n="26" color="1" hidden="super" large="true" fixed="E9*d(O,P52)" midpoint="O" acute="true">Cercle de centre P44 de rayon E9*d(P44,P52)</Circle>
<Polygon name="poly26" n="109" color="4" background="true" large="true" ctag0="brown" cexpr0="poly26&lt;0" ctag1="solid" cexpr1="poly26&lt;0" ctag2="z" cexpr2="if(poly26&lt;0,5,10)" ctag3="superhidden" cexpr3="a==0" point1="P62" point2="P64" point3="P61" point4="P63">Polygone P62, P64, P61, P63</Polygon>
<Segment name="s23" n="113" color="2" large="true" ctag0="superhidden" cexpr0="a==0" from="P64" to="P62" is3D="true">Segment de P64 à P62</Segment>
<Segment name="s20" n="110" color="2" large="true" ctag0="superhidden" cexpr0="a==0" from="P62" to="P63" is3D="true">Segment de P62 à P63</Segment>
<Segment name="s21" n="111" color="2" large="true" ctag0="superhidden" cexpr0="a==0" from="P63" to="P61" is3D="true">Segment de P63 à P61</Segment>
<Segment name="s22" n="112" color="2" large="true" ctag0="superhidden" cexpr0="a==0" from="P61" to="P64" is3D="true">Segment de P61 à P64</Segment>
<Intersection name="I14" n="82" color="1" hidden="super" large="true" first="a11" second="c4" shape="circle" which="first">Intersection entre a11 et c4</Intersection>
<Intersection name="I15" n="83" color="3" hidden="super" large="true" first="a12" second="c4" shape="circle" which="first">Intersection entre a12 et c4</Intersection>
<Intersection name="I16" n="84" color="2" type="thick" hidden="super" showname="true" large="true" first="l17" second="c5" shape="circle" which="second">Intersection entre l17 et c5</Intersection>
<Point name="P53" n="85" color="1" hidden="super" bold="true" x="x(I14)+x(X)-x(O)" actx="-8.242358880534688" y="y(I14)+y(X)-y(O)" acty="16.413527524094512" shape="circle" fixed="true">Point à &quot;x(C)+x(B)-x(A)&quot;, &quot;y(C)+y(B)-y(A)&quot; </Point>
<Point name="P54" n="86" color="3" hidden="super" bold="true" x="x(I15)+x(Y)-x(O)" actx="8.084877832826063" y="y(I15)+y(Y)-y(O)" acty="16.960644609341934" shape="circle" fixed="true">Point à &quot;x(C)+x(B)-x(A)&quot;, &quot;y(C)+y(B)-y(A)&quot; </Point>
<Point name="P55" n="87" color="1" hidden="super" showname="true" bold="true" x="x(I16)+x(X)-x(O)" actx="-0.4025622028666581" y="y(I16)+y(X)-y(O)" acty="1.8369898510498843" shape="circle" fixed="true">Point à &quot;x(C)+x(B)-x(A)&quot;, &quot;y(C)+y(B)-y(A)&quot; </Point>
<Point name="P56" n="88" color="1" hidden="super" showname="true" bold="true" x="x(I16)+x(Y)-x(O)" actx="1.0101113557444017" y="y(I16)+y(Y)-y(O)" acty="1.8663318134565063" shape="circle" fixed="true">Point à &quot;x(C)+x(B)-x(A)&quot;, &quot;y(C)+y(B)-y(A)&quot; </Point>
<Point name="P57" n="89" color="2" type="thick" hidden="super" x="2*x(O)-x(I16)" actx="0.6666669271921424" y="2*y(O)-y(I16)" acty="-1.603581705919638" shape="circle" fixed="true">Point</Point>
<Line name="l18" n="90" color="1" hidden="super" large="true" from="I14" to="P53">Droite passant par I14 et P53</Line>
<Line name="l19" n="91" color="3" hidden="super" large="true" from="P54" to="I15">Droite passant par P54 et I15</Line>
<Point name="P58" n="92" color="2" type="thick" hidden="super" bold="true" x="x(P57)+x(I16)-x(P55)" actx="1.3400134927928296" y="y(P57)+y(I16)-y(P55)" acty="-1.274797766700615" shape="circle" fixed="true">Point à &quot;x(C)+x(B)-x(A)&quot;, &quot;y(C)+y(B)-y(A)&quot; </Point>
<Point name="P59" n="93" color="2" type="thick" hidden="super" bold="true" x="x(P57)+x(I16)-x(P56)" actx="-0.07266006581823037" y="y(P57)+y(I16)-y(P56)" acty="-1.304139729107237" shape="circle" fixed="true">Point à &quot;x(C)+x(B)-x(A)&quot;, &quot;y(C)+y(B)-y(A)&quot; </Point>
<Line name="l20" n="94" color="1" hidden="super" large="true" from="I16" to="P55">Droite passant par I16 et P55</Line>
<Line name="l21" n="95" color="1" hidden="super" large="true" from="I16" to="P56">Droite passant par I16 et P56</Line>
<Intersection name="I17" n="96" color="1" hidden="super" showname="true" large="true" first="l17" second="l18" shape="circle">Intersection entre l17 et l18</Intersection>
<Intersection name="I18" n="97" color="3" hidden="super" showname="true" large="true" first="l17" second="l19" shape="circle">Intersection entre l17 et l19</Intersection>
<Line name="l22" n="98" color="1" hidden="super" large="true" from="P57" to="P58">Droite passant par P57 et P58</Line>
<Line name="l23" n="99" color="1" hidden="super" large="true" from="P57" to="P59">Droite passant par P57 et P59</Line>
<Point name="P60" n="100" color="5" type="thick" hidden="super" showname="true" large="true" x="if(d(O,I17)&gt;d(O,I18),x(I17),x(I18))" actx="-1.6992668530459256" y="if(d(O,I17)&gt;d(O,I18),y(I17),y(I18))" acty="20.923415688789024" shape="circle" fixed="true">Point</Point>
<Intersection name="I19" n="101" color="1" hidden="super" showname="true" large="true" first="l23" second="l20" shape="circle">Intersection entre l23 et l20</Intersection>
<Intersection name="I20" n="102" color="1" hidden="super" showname="true" large="true" first="l22" second="l21" shape="circle">Intersection entre l22 et l21</Intersection>
<Function name="f24" n="103" color="1" type="thin" large="true" ctag0="z" cexpr0="9" ctag1="superhidden" cexpr1="a==0" x="if(floor(t/2)==(t/2),if(floor(t/4)==(t/4),x(I16)+(t/2)*(x(P56)-x(I16)),x(I19)+(t/2)*(x(P56)-x(I16))),if(floor((t-1)/4)==(t-1)/4,x(I16)+((t+1)/2)*(x(P56)-x(I16)),x(I19)+((t+1)/2)*(x(P56)-x(I16))))" y="if(floor(t/2)==(t/2),if(floor(t/4)==(t/4),y(I16)+(t/2)*(y(P56)-y(I16)),y(I19)+(t/2)*(y(P56)-y(I16))),if(floor((t-1)/4)==(t-1)/4,y(I16)+((t+1)/2)*(y(P56)-y(I16)),y(I19)+((t+1)/2)*(y(P56)-y(I16))))" var="t" min="0" max="floor(((y(I20)-y(I16))/(y(P56)-y(I16)))*2)-1" d="1" shape="cross" color="1">Fonction ( if(floor(t/2)==(t/2),if(floor(t/4)==(t/4),x(I16)+(t/2)*(x(P56)-x(I16)),x(I19)+(t/2)*(x(P56)-x(I16))),if(floor((t-1)/4)==(t-1)/4,x(I16)+((t+1)/2)*(x(P56)-x(I16)),x(I19)+((t+1)/2)*(x(P56)-x(I16)))) , if(floor(t/2)==(t/2),if(floor(t/4)==(t/4),y(I16)+(t/2)*(y(P56)-y(I16)),y(I19)+(t/2)*(y(P56)-y(I16))),if(floor((t-1)/4)==(t-1)/4,y(I16)+((t+1)/2)*(y(P56)-y(I16)),y(I19)+((t+1)/2)*(y(P56)-y(I16)))) )</Function>
<Function name="f25" n="104" color="1" type="thin" large="true" ctag0="z" cexpr0="9" ctag1="superhidden" cexpr1="a==0" x="if(floor(t/2)==(t/2),if(floor(t/4)==(t/4),x(I16)+(t/2)*(x(P55)-x(I16)),x(I20)+(t/2)*(x(P55)-x(I16))),if(floor((t-1)/4)==(t-1)/4,x(I16)+((t+1)/2)*(x(P55)-x(I16)),x(I20)+((t+1)/2)*(x(P55)-x(I16))))" y="if(floor(t/2)==(t/2),if(floor(t/4)==(t/4),y(I16)+(t/2)*(y(P55)-y(I16)),y(I20)+(t/2)*(y(P55)-y(I16))),if(floor((t-1)/4)==(t-1)/4,y(I16)+((t+1)/2)*(y(P55)-y(I16)),y(I20)+((t+1)/2)*(y(P55)-y(I16))))" var="t" min="0" max="floor(((x(I19)-x(I16))/(x(P55)-x(I16)))*2)-1" d="1" shape="cross" color="1">Fonction ( if(floor(t/2)==(t/2),if(floor(t/4)==(t/4),x(I16)+(t/2)*(x(P55)-x(I16)),x(I20)+(t/2)*(x(P55)-x(I16))),if(floor((t-1)/4)==(t-1)/4,x(I16)+((t+1)/2)*(x(P55)-x(I16)),x(I20)+((t+1)/2)*(x(P55)-x(I16)))) , if(floor(t/2)==(t/2),if(floor(t/4)==(t/4),y(I16)+(t/2)*(y(P55)-y(I16)),y(I20)+(t/2)*(y(P55)-y(I16))),if(floor((t-1)/4)==(t-1)/4,y(I16)+((t+1)/2)*(y(P55)-y(I16)),y(I20)+((t+1)/2)*(y(P55)-y(I16)))) )</Function>
</Objects>
</Construction>
</CaR>

138
base3D.zir

@ -0,0 +1,138 @@
<?xml version="1.0" encoding="utf-8"?>
<CaR>
<Script Name="aerial view" onload="false">
phi=GetExpressionValue(&quot;E10&quot;);
teta=GetExpressionValue(&quot;E11&quot;);
dphi=(90-phi)/200;
dteta=(90-teta)/200;
for (i=0;i&lt;200;i++){
phi=phi+dphi;
SetExpressionValue(&quot;E10&quot;,phi);
teta=teta+dteta;
SetExpressionValue(&quot;E11&quot;,teta);
}
SetExpressionValue(&quot;E10&quot;,90);
SetExpressionValue(&quot;E11&quot;,90);
</Script>
<Script Name="front view" onload="false">
phi=GetExpressionValue(&quot;E10&quot;);
teta=GetExpressionValue(&quot;E11&quot;);
dphi=-phi/200;
dteta=-teta/200;
for (i=0;i&lt;200;i++){
phi=phi+dphi;
SetExpressionValue(&quot;E10&quot;,phi);
teta=teta+dteta;
SetExpressionValue(&quot;E11&quot;,teta);
}
SetExpressionValue(&quot;E10&quot;,0);
SetExpressionValue(&quot;E11&quot;,0);
</Script>
<Script Name="right view" onload="false">
phi=GetExpressionValue(&quot;E10&quot;);
teta=GetExpressionValue(&quot;E11&quot;);
dphi=(-90-phi)/200;
dteta=-teta/200;
for (i=0;i&lt;200;i++){
phi=phi+dphi;
teta=teta+dteta;
SetExpressionValue(&quot;E10&quot;,phi);
SetExpressionValue(&quot;E11&quot;,teta);
}
SetExpressionValue(&quot;E10&quot;,-90);
SetExpressionValue(&quot;E11&quot;,0);
</Script>
<Script Name="left view" onload="false">
phi=GetExpressionValue(&quot;E10&quot;);
teta=GetExpressionValue(&quot;E11&quot;);
dphi=(90-phi)/200;
dteta=-teta/200;
for (i=0;i&lt;200;i++){
phi=phi+dphi;
teta=teta+dteta;
SetExpressionValue(&quot;E10&quot;,phi);
SetExpressionValue(&quot;E11&quot;,teta);
}
SetExpressionValue(&quot;E10&quot;,90);
SetExpressionValue(&quot;E11&quot;,0);
</Script>
<Script Name="back in mobile view" onload="false">
SetExpressionValue(&quot;E10&quot;,&quot;-100*windowcx&quot;);
SetExpressionValue(&quot;E11&quot;,&quot;100*windowcy&quot;);</Script>
<Construction>
<Window x="0.42325882781637736" y="0.2640459857446189" w="4.489848193237493"/>
<Windowdim w="1280" h="800"/>
<Preferences arrowsize="15" selectionsize="5" monkeyspeed="10" gridopacity="13" colorbackgroundx="139" colorbackgroundy="9" colorbackgroundPal="4" fig3D="true" figDP="false"/>
<CTRLcheckbox Ename="a" x="79" y="0" w="30" h="22" showC="true" showU="false" showV="false" hidden="false" C="Floor" U="°" V="0"/>
<CTRLcheckbox Ename="b" x="79" y="25" w="30" h="22" showC="true" showU="false" showV="false" hidden="false" C="Coordinates system" U="°" V="1"/>
<Objects>
<Text name="Text2" n="209" type="thin" x="windowcx-windoww+3/pixel" y="windowcy-windowh/2+25/pixel" fixed="true">Use right-clic-drag to rotate the coordinate system</Text>
<Expression name="E10" n="60" color="1" type="thick" hidden="true" showname="true" showvalue="true" x="windowcx-windoww+3/pixel" y="windowcy+windowh/2-60/pixel" value="-100*windowcx" prompt="Phi" fixed="true">Expression &quot;-100*windowcx&quot; à -4.02299, 4.3912</Expression>
<Expression name="E11" n="61" color="1" type="thick" hidden="true" showname="true" showvalue="true" x="windowcx-windoww+3/pixel" y="windowcy+windowh/2-90/pixel" value="100*windowcy" prompt="Theta" fixed="true">Expression &quot;100*windowcy&quot; à -4.02299, 3.95524</Expression>
<Expression name="a" n="210" color="1" type="thick" hidden="super" showname="true" showvalue="true" x="0.21596738144686745" y="0.1250337471534495" value="0" prompt="Valeur">Expression &quot;0&quot; à 0.21597, 0.12503</Expression>
<Expression name="E9" n="59" color="1" type="thin" showname="true" showvalue="true" ctag0="superhidden" cexpr0="a==0" x="-3.339120291073775" y="3.0432051838371934" value="3" prompt="grid">Expression &quot;3&quot; à -3.33912, 3.04321</Expression>
<Expression name="b" n="211" color="1" type="thick" hidden="super" showname="true" showvalue="true" x="-0.011366704286676745" y="0.06820022572006312" value="1" prompt="Valeur">Expression &quot;1&quot; à -0.01137, 0.0682</Expression>
<Point name="P66" n="172" color="2" hidden="true" x="windowcx-windoww-20/pixel" actx="-4.229708282523296" y="(windoww/(windoww-d(windoww)))*(y(P66)-windowcy)+windowcy+d(windowcy)" acty="3.060354948199551" shape="circle" fixed="true">Point</Point>
<Point name="O" n="57" type="thick" ctag0="z" cexpr0="7" ctag1="hidden" cexpr1="@b==0" x="(windoww/(windoww-d(windoww)))*(x(O)-windowcx)+windowcx+d(windowcx)" actx="0.46872564496308566" y="(windoww/(windoww-d(windoww)))*(y(O)-windowcy)+windowcy+d(windowcy)" acty="0.2810960421746347" shape="circle" is3D="true" x3D="0.0" y3D="0.0" z3D="0.0" fixed="true">Point</Point>
<Point name="P45" n="62" color="2" hidden="super" bold="true" large="true" x="x(O)+1" actx="1.4687256449630857" y="y(O)" acty="0.2810960421746347" fixed="true">Point à &quot;x(P2)+1&quot;, &quot;y(P2)&quot; </Point>
<Angle name="a9" n="63" color="1" hidden="super" unit="∞" large="true" first="O" root="O" fixed="90" inverse="true">Angle O - O de mesure 90</Angle>
<Point name="P46" n="65" color="2" type="thick" hidden="super" bold="true" large="true" ctag0="z" cexpr0="7" x="x(O)+1" actx="1.4687256449630857" y="y(O)" acty="0.2810960421746347" shape="circle" fixed="true">Point sur r1 </Point>
<Expression name="E12" n="174" color="3" type="thick" hidden="true" showname="true" showvalue="true" bold="true" large="true" x="x(P66)" y="y(P66)+windoww/24" value="2" prompt="Nombre de divisions" fixed="true">Expression &quot;2&quot; à -4.27913, 3.24743</Expression>
<Point name="P68" n="175" color="5" hidden="super" showname="true" large="true" x="x(P66)+windoww/8" actx="-3.6684772583686094" y="y(P66)-windoww/12" acty="2.6862009320964266" shape="circle" fixed="true">Point</Point>
<Ray name="r3" n="64" color="2" hidden="super" bold="true" large="true" from="O" to="P45">Demi-droite d&apos;origine P44 vers P45</Ray>
<Point name="P47" n="66" color="2" hidden="super" showname="true" xcoffset="-0.05429864253393646" ycoffset="-6.742081447796977E-6" keepclose="true" bold="true" large="true" x="x(O)" actx="0.46872564496308566" y="y(O)+d(O,P46)" acty="1.2810960421746347" shape="dot" fixed="true">Point à &quot;x(P2)&quot;, &quot;y(P2)+d(P2,po8)&quot; </Point>
<Segment name="s15" n="67" color="2" hidden="super" bold="true" large="true" ctag0="z" cexpr0="7" from="O" to="P46" arrow="true">Segment de P44 à P46</Segment>
<Point name="P69" n="176" color="5" hidden="super" large="true" x="x(P68)+3*windoww" actx="9.80106732134387" y="y(P68)" acty="2.6862009320964266" shape="circle" fixed="true">Point</Point>
<Point name="P70" n="177" color="5" hidden="super" showname="true" large="true" x="x(P68)" actx="-3.6684772583686094" y="y(P66)" acty="3.060354948199551" shape="circle" fixed="true">Point</Point>
<Segment name="s16" n="68" color="2" hidden="super" bold="true" large="true" ctag0="z" cexpr0="7" from="O" to="P47" arrow="true">Segment de P44 à P47</Segment>
<Segment name="s24" n="178" color="5" hidden="super" large="true" from="P68" to="P69">Segment de P68 à P69</Segment>
<Point name="X" alias="X" n="69" color="3" type="thin" showname="true" xcoffset="-0.23757732805165954" ycoffset="-0.07533417064110326" keepclose="true" bold="true" large="true" ctag0="z" cexpr0="7" ctag1="hidden" cexpr1="b==0" x="x(O)+s15*sin(E10)" actx="-0.2046209206376014" y="y(O)-s16*cos(E10)*sin(E11)" acty="-0.04768789704438847" shape="dot" is3D="true" x3D="1.0" y3D="0.0" z3D="0.0" fixed="true">Point à &quot;x(P2)+s5*sin(a1)&quot;, &quot;y(P2)-s6*cos(a1)*sin(a2)&quot; </Point>
<Point name="Y" alias="Y" n="70" color="5" type="thin" showname="true" xcoffset="0.05190351386152203" ycoffset="-0.01168034001854501" keepclose="true" bold="true" large="true" ctag0="z" cexpr0="7" ctag1="hidden" cexpr1="b==0" x="x(O)+s15*cos(E10)" actx="1.2080526379734584" y="y(O)+s16*sin(E10)*sin(E11)" acty="-0.01834593463776646" shape="dot" is3D="true" x3D="0.0" y3D="1.0" z3D="0.0" fixed="true">Point à &quot;x(P2)+s5*cos(a1)&quot;, &quot;y(P2)+s6*sin(a1)*sin(a2)&quot; </Point>
<Point name="Z" alias="Z" n="71" color="2" type="thin" showname="true" xcoffset="-0.01669997779258381" ycoffset="0.3527600362915684" keepclose="true" bold="true" large="true" ctag0="z" cexpr0="7" ctag1="hidden" cexpr1="b==0" x="x(O)" actx="0.46872564496308566" y="y(O)+s16*cos(E11)" acty="1.1767721129917037" shape="dot" is3D="true" x3D="0.0" y3D="0.0" z3D="1.0" fixed="true">Point à &quot;x(P2)&quot;, &quot;y(P2)+s6*cos(a2)&quot; </Point>
<Point name="P51" n="75" color="2" hidden="super" showname="true" bold="true" x="x(X)+x(O)-x(O)" actx="-0.2046209206376014" y="y(X)+y(O)-y(O)" acty="-0.04768789704438847" shape="circle" fixed="true">Point à &quot;x(C)+x(B)-x(A)&quot;, &quot;y(C)+y(B)-y(A)&quot; </Point>
<Angle name="a10" n="76" color="3" hidden="super" unit="∞" large="true" first="X" root="O" fixed="90" acute="true">Angle X - O de mesure 90</Angle>
<Point name="P52" n="77" color="2" hidden="super" showname="true" bold="true" x="x(Y)+x(X)-x(O)" actx="0.5347060723727712" y="y(Y)+y(X)-y(O)" acty="-0.3471298738567896" shape="circle" fixed="true">Point à &quot;x(C)+x(B)-x(A)&quot;, &quot;y(C)+y(B)-y(A)&quot; </Point>
<Angle name="a11" n="78" color="1" hidden="super" unit="∞" large="true" first="X" root="O" fixed="90" inverse="true">Angle X - O de mesure 90</Angle>
<Angle name="a12" n="79" color="3" hidden="super" unit="∞" large="true" first="Y" root="O" fixed="90" acute="true">Angle Y - O de mesure 90</Angle>
<Segment name="s6" n="189" color="2" ctag0="z" cexpr0="7" ctag1="hidden" cexpr1="b==0" from="O" to="Z" is3D="true" arrow="true">Segment de O à Z</Segment>
<Segment name="s7" n="192" color="3" ctag0="z" cexpr0="7" ctag1="hidden" cexpr1="b==0" from="O" to="X" is3D="true" arrow="true">Segment de O à X</Segment>
<Segment name="s8" n="195" color="5" ctag0="z" cexpr0="7" ctag1="hidden" cexpr1="b==0" from="O" to="Y" is3D="true" arrow="true">Segment de O à Y</Segment>
<Point name="P61" n="105" color="1" type="thick" hidden="super" large="true" x="x(O)+(E9)*(x(X)-x(O))+(E9)*(x(Y)-x(O))+(0)*(x(Z)-x(O))" actx="0.6666669271921428" y="y(O)+(E9)*(y(X)-y(O))+(E9)*(y(Y)-y(O))+(0)*(y(Z)-y(O))" acty="-1.6035817059196382" shape="circle" is3D="true" x3D="E9" actx3D="3.0" y3D="E9" acty3D="3.0" z3D="0" actz3D="0.0" fixed="true" fixed3D="true">Point</Point>
<Point name="P62" n="106" color="1" type="thick" hidden="super" large="true" x="x(O)+(-E9)*(x(X)-x(O))+(-E9)*(x(Y)-x(O))+(0)*(x(Z)-x(O))" actx="0.2707843627340285" y="y(O)+(-E9)*(y(X)-y(O))+(-E9)*(y(Y)-y(O))+(0)*(y(Z)-y(O))" acty="2.165773790268908" shape="circle" is3D="true" x3D="-E9" actx3D="-3.0" y3D="-E9" acty3D="-3.0" z3D="0" actz3D="0.0" fixed="true" fixed3D="true">Point</Point>
<Point name="P63" n="107" color="1" type="thick" hidden="super" large="true" x="x(O)+(E9)*(x(X)-x(O))+(-E9)*(x(Y)-x(O))+(0)*(x(Z)-x(O))" actx="-3.7692950308700937" y="y(O)+(E9)*(y(X)-y(O))+(-E9)*(y(Y)-y(O))+(0)*(y(Z)-y(O))" acty="0.19307015495476865" shape="circle" is3D="true" x3D="E9" actx3D="3.0" y3D="-E9" acty3D="-3.0" z3D="0" actz3D="0.0" fixed="true" fixed3D="true">Point</Point>
<Point name="P64" n="108" color="1" type="thick" hidden="super" large="true" x="x(O)+(-E9)*(x(X)-x(O))+(E9)*(x(Y)-x(O))+(0)*(x(Z)-x(O))" actx="4.706746320796265" y="y(O)+(-E9)*(y(X)-y(O))+(E9)*(y(Y)-y(O))+(0)*(y(Z)-y(O))" acty="0.36912192939450084" shape="circle" is3D="true" x3D="-E9" actx3D="-3.0" y3D="E9" acty3D="3.0" z3D="0" actz3D="0.0" fixed="true" fixed3D="true">Point</Point>
<Line name="l16" n="80" color="2" hidden="super" large="true" from="O" to="P51">Droite passant par P44 et P51</Line>
<Circle name="c4" n="24" color="2" large="true" fixed="(1+floor(4*windoww/d(P52,O)))*d(P52,O)" midpoint="O" acute="true">Cercle de centre P44 de rayon (1+floor(4*windoww/d(P52,P44)))*d(P52,P44)</Circle>
<Line name="l17" n="81" color="2" hidden="super" large="true" from="O" to="P52">Droite passant par P44 et P52</Line>
<Circle name="c5" n="26" color="1" hidden="super" large="true" fixed="E9*d(O,P52)" midpoint="O" acute="true">Cercle de centre P44 de rayon E9*d(P44,P52)</Circle>
<Polygon name="poly26" n="109" color="4" background="true" large="true" ctag0="brown" cexpr0="poly26&lt;0" ctag1="solid" cexpr1="poly26&lt;0" ctag2="z" cexpr2="if(poly26&lt;0,5,10)" ctag3="superhidden" cexpr3="a==0" point1="P62" point2="P64" point3="P61" point4="P63">Polygone P62, P64, P61, P63</Polygon>
<Segment name="s23" n="113" color="2" large="true" ctag0="superhidden" cexpr0="a==0" from="P64" to="P62" is3D="true">Segment de P64 à P62</Segment>
<Segment name="s20" n="110" color="2" large="true" ctag0="superhidden" cexpr0="a==0" from="P62" to="P63" is3D="true">Segment de P62 à P63</Segment>
<Segment name="s21" n="111" color="2" large="true" ctag0="superhidden" cexpr0="a==0" from="P63" to="P61" is3D="true">Segment de P63 à P61</Segment>
<Segment name="s22" n="112" color="2" large="true" ctag0="superhidden" cexpr0="a==0" from="P61" to="P64" is3D="true">Segment de P61 à P64</Segment>
<Intersection name="I14" n="82" color="1" hidden="super" large="true" first="a11" second="c4" shape="circle" which="first">Intersection entre a11 et c4</Intersection>
<Intersection name="I15" n="83" color="3" hidden="super" large="true" first="a12" second="c4" shape="circle" which="first">Intersection entre a12 et c4</Intersection>
<Intersection name="I16" n="84" color="2" type="thick" hidden="super" showname="true" large="true" first="l17" second="c5" shape="circle" which="second">Intersection entre l17 et c5</Intersection>
<Point name="P53" n="85" color="1" hidden="super" bold="true" x="x(I14)+x(X)-x(O)" actx="-8.242358880534688" y="y(I14)+y(X)-y(O)" acty="16.413527524094512" shape="circle" fixed="true">Point à &quot;x(C)+x(B)-x(A)&quot;, &quot;y(C)+y(B)-y(A)&quot; </Point>
<Point name="P54" n="86" color="3" hidden="super" bold="true" x="x(I15)+x(Y)-x(O)" actx="8.084877832826063" y="y(I15)+y(Y)-y(O)" acty="16.960644609341934" shape="circle" fixed="true">Point à &quot;x(C)+x(B)-x(A)&quot;, &quot;y(C)+y(B)-y(A)&quot; </Point>
<Point name="P55" n="87" color="1" hidden="super" showname="true" bold="true" x="x(I16)+x(X)-x(O)" actx="-0.4025622028666581" y="y(I16)+y(X)-y(O)" acty="1.8369898510498843" shape="circle" fixed="true">Point à &quot;x(C)+x(B)-x(A)&quot;, &quot;y(C)+y(B)-y(A)&quot; </Point>
<Point name="P56" n="88" color="1" hidden="super" showname="true" bold="true" x="x(I16)+x(Y)-x(O)" actx="1.0101113557444017" y="y(I16)+y(Y)-y(O)" acty="1.8663318134565063" shape="circle" fixed="true">Point à &quot;x(C)+x(B)-x(A)&quot;, &quot;y(C)+y(B)-y(A)&quot; </Point>
<Point name="P57" n="89" color="2" type="thick" hidden="super" x="2*x(O)-x(I16)" actx="0.6666669271921424" y="2*y(O)-y(I16)" acty="-1.603581705919638" shape="circle" fixed="true">Point</Point>
<Line name="l18" n="90" color="1" hidden="super" large="true" from="I14" to="P53">Droite passant par I14 et P53</Line>
<Line name="l19" n="91" color="3" hidden="super" large="true" from="P54" to="I15">Droite passant par P54 et I15</Line>
<Point name="P58" n="92" color="2" type="thick" hidden="super" bold="true" x="x(P57)+x(I16)-x(P55)" actx="1.3400134927928296" y="y(P57)+y(I16)-y(P55)" acty="-1.274797766700615" shape="circle" fixed="true">Point à &quot;x(C)+x(B)-x(A)&quot;, &quot;y(C)+y(B)-y(A)&quot; </Point>
<Point name="P59" n="93" color="2" type="thick" hidden="super" bold="true" x="x(P57)+x(I16)-x(P56)" actx="-0.07266006581823037" y="y(P57)+y(I16)-y(P56)" acty="-1.304139729107237" shape="circle" fixed="true">Point à &quot;x(C)+x(B)-x(A)&quot;, &quot;y(C)+y(B)-y(A)&quot; </Point>
<Line name="l20" n="94" color="1" hidden="super" large="true" from="I16" to="P55">Droite passant par I16 et P55</Line>
<Line name="l21" n="95" color="1" hidden="super" large="true" from="I16" to="P56">Droite passant par I16 et P56</Line>
<Intersection name="I17" n="96" color="1" hidden="super" showname="true" large="true" first="l17" second="l18" shape="circle">Intersection entre l17 et l18</Intersection>
<Intersection name="I18" n="97" color="3" hidden="super" showname="true" large="true" first="l17" second="l19" shape="circle">Intersection entre l17 et l19</Intersection>
<Line name="l22" n="98" color="1" hidden="super" large="true" from="P57" to="P58">Droite passant par P57 et P58</Line>
<Line name="l23" n="99" color="1" hidden="super" large="true" from="P57" to="P59">Droite passant par P57 et P59</Line>
<Point name="P60" n="100" color="5" type="thick" hidden="super" showname="true" large="true" x="if(d(O,I17)&gt;d(O,I18),x(I17),x(I18))" actx="-1.6992668530459256" y="if(d(O,I17)&gt;d(O,I18),y(I17),y(I18))" acty="20.923415688789024" shape="circle" fixed="true">Point</Point>
<Intersection name="I19" n="101" color="1" hidden="super" showname="true" large="true" first="l23" second="l20" shape="circle">Intersection entre l23 et l20</Intersection>
<Intersection name="I20" n="102" color="1" hidden="super" showname="true" large="true" first="l22" second="l21" shape="circle">Intersection entre l22 et l21</Intersection>
<Function name="f24" n="103" color="1" type="thin" large="true" ctag0="z" cexpr0="9" ctag1="superhidden" cexpr1="a==0" x="if(floor(t/2)==(t/2),if(floor(t/4)==(t/4),x(I16)+(t/2)*(x(P56)-x(I16)),x(I19)+(t/2)*(x(P56)-x(I16))),if(floor((t-1)/4)==(t-1)/4,x(I16)+((t+1)/2)*(x(P56)-x(I16)),x(I19)+((t+1)/2)*(x(P56)-x(I16))))" y="if(floor(t/2)==(t/2),if(floor(t/4)==(t/4),y(I16)+(t/2)*(y(P56)-y(I16)),y(I19)+(t/2)*(y(P56)-y(I16))),if(floor((t-1)/4)==(t-1)/4,y(I16)+((t+1)/2)*(y(P56)-y(I16)),y(I19)+((t+1)/2)*(y(P56)-y(I16))))" var="t" min="0" max="floor(((y(I20)-y(I16))/(y(P56)-y(I16)))*2)-1" d="1" shape="cross" color="1">Fonction ( if(floor(t/2)==(t/2),if(floor(t/4)==(t/4),x(I16)+(t/2)*(x(P56)-x(I16)),x(I19)+(t/2)*(x(P56)-x(I16))),if(floor((t-1)/4)==(t-1)/4,x(I16)+((t+1)/2)*(x(P56)-x(I16)),x(I19)+((t+1)/2)*(x(P56)-x(I16)))) , if(floor(t/2)==(t/2),if(floor(t/4)==(t/4),y(I16)+(t/2)*(y(P56)-y(I16)),y(I19)+(t/2)*(y(P56)-y(I16))),if(floor((t-1)/4)==(t-1)/4,y(I16)+((t+1)/2)*(y(P56)-y(I16)),y(I19)+((t+1)/2)*(y(P56)-y(I16)))) )</Function>
<Function name="f25" n="104" color="1" type="thin" large="true" ctag0="z" cexpr0="9" ctag1="superhidden" cexpr1="a==0" x="if(floor(t/2)==(t/2),if(floor(t/4)==(t/4),x(I16)+(t/2)*(x(P55)-x(I16)),x(I20)+(t/2)*(x(P55)-x(I16))),if(floor((t-1)/4)==(t-1)/4,x(I16)+((t+1)/2)*(x(P55)-x(I16)),x(I20)+((t+1)/2)*(x(P55)-x(I16))))" y="if(floor(t/2)==(t/2),if(floor(t/4)==(t/4),y(I16)+(t/2)*(y(P55)-y(I16)),y(I20)+(t/2)*(y(P55)-y(I16))),if(floor((t-1)/4)==(t-1)/4,y(I16)+((t+1)/2)*(y(P55)-y(I16)),y(I20)+((t+1)/2)*(y(P55)-y(I16))))" var="t" min="0" max="floor(((x(I19)-x(I16))/(x(P55)-x(I16)))*2)-1" d="1" shape="cross" color="1">Fonction ( if(floor(t/2)==(t/2),if(floor(t/4)==(t/4),x(I16)+(t/2)*(x(P55)-x(I16)),x(I20)+(t/2)*(x(P55)-x(I16))),if(floor((t-1)/4)==(t-1)/4,x(I16)+((t+1)/2)*(x(P55)-x(I16)),x(I20)+((t+1)/2)*(x(P55)-x(I16)))) , if(floor(t/2)==(t/2),if(floor(t/4)==(t/4),y(I16)+(t/2)*(y(P55)-y(I16)),y(I20)+(t/2)*(y(P55)-y(I16))),if(floor((t-1)/4)==(t-1)/4,y(I16)+((t+1)/2)*(y(P55)-y(I16)),y(I20)+((t+1)/2)*(y(P55)-y(I16)))) )</Function>
</Objects>
</Construction>
</CaR>

13
baseDP.zir

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<CaR>
<Construction>
<Window x="0.0" y="0.0" w="8.0"/>
<Windowdim w="1280" h="800"/>
<Preferences minfontsize="13" minpointsize="3" minlinesize="1" arrowsize="15" digits.lengths="5" digits.edit="5" digits.angles="0" colorbackground="3,60,126" colorbackgroundx="79" colorbackgroundy="128" colorbackgroundPal="4" fig3D="false"/>
<Objects>
<Point name="CH" n="0" color="2" hidden="true" showname="true" x="0" actx="0.0" y="0" acty="0.0" shape="circle" fixed="true">Point</Point>
<Circle name="Hz" n="3" color="3" type="thick" hidden="true" ctag0="z" cexpr0="0" fixed="4" midpoint="CH" acute="true">Cercle de centre P1 de rayon 4.0</Circle>
<Circle name="HzBack" n="7" color="4" scolor="245,245,245" type="thin" hidden="super" solid="true" ctag0="z" cexpr0="1" fixed="Hz-0.0010/pixel" midpoint="CH" filled="true" acute="true">Cercle de centre CH de rayon 0.8387572301991061</Circle>
</Objects>
</Construction>
</CaR>

1446
builtin.mcr

File diff suppressed because it is too large

50
com/apple/eawt/Application.java

@ -0,0 +1,50 @@
/*
* Application.java
* allusionsApp
*
* Created by Matthieu Cormier on Fri Jun 20 2003.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
package com.apple.eawt;
// This is a stub interface for non Mac OS X java 1.4 environments
public class Application {
public Application() {
}
public void addApplicationListener(final ApplicationListener listenToMe) {
// I don't feel like listening today!!
}
public boolean getEnabledPreferencesMenu() {
return false;
}
public void removeApplicationListener(
final ApplicationListener dontListenToMe) {
// don't worry I haven't been
}
public void setEneablePreferencesMenu(final boolean enable) {
// yeah, like, what-ever!
}
public static java.awt.Point getMouseLocationOnScreen() {
return null;
}
}

50
com/apple/eawt/ApplicationAdapter.java

@ -0,0 +1,50 @@
/*
* ApplicationAdapter.java
* allusionsApp
*
* Created by Matthieu Cormier on Fri Jun 20 2003.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
package com.apple.eawt;
// This is a stub interface for non Mac OS X java 1.4 environments
public class ApplicationAdapter implements ApplicationListener {
public ApplicationAdapter() {
}
public void handleAbout(final ApplicationEvent event) {
}
public void handleOpenApplication(final ApplicationEvent event) {
}
public void handleOpenFile(final ApplicationEvent event) {
}
public void handlePreferences(final ApplicationEvent event) {
}
public void handlePrintFile(final ApplicationEvent event) {
}
public void handleQuit(final ApplicationEvent event) {
}
public void handleReOpenApplication(ApplicationEvent event) {
}
}

39
com/apple/eawt/ApplicationBeanInfo.java

@ -0,0 +1,39 @@
/*
* ApplicationBeanInfo.java
* allusionsApp
*
* Created by Matthieu Cormier on Fri Jun 20 2003.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
package com.apple.eawt;
// This is a stub interface for non Mac OS X java 1.4 environments
public class ApplicationBeanInfo extends java.beans.SimpleBeanInfo {
public ApplicationBeanInfo() {
}
/**
*
* @param iconKind
* @return
*/
@Override
public java.awt.Image getIcon(final int iconKind) {
return null;
}
}

37
com/apple/eawt/ApplicationEvent.java

@ -0,0 +1,37 @@
/*
* ApplicationEvent.java
* allusionsApp
*
* Created by Matthieu Cormier on Fri Jun 20 2003.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
package com.apple.eawt;
// This is a stub interface for non Mac OS X java 1.4 environments
public class ApplicationEvent {
public java.lang.String getFilename() {
return null;
}
public boolean isHandled() {
return false;
}
public void setHandled(final boolean state) {
}
}

38
com/apple/eawt/ApplicationListener.java

@ -0,0 +1,38 @@
/*
* ApplicationListener.java
* allusionsApp
*
* Created by Matthieu Cormier on Fri Jun 20 2003.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
package com.apple.eawt;
// This is a stub interface for non Mac OS X java 1.4 environments
public interface ApplicationListener extends java.util.EventListener {
public void handleAbout(ApplicationEvent event);
public void handleOpenApplication(ApplicationEvent event);
public void handleOpenFile(ApplicationEvent event);
public void handlePreferences(ApplicationEvent event);
public void handlePrintFile(ApplicationEvent event);