<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=CubicSpline%2F1002%2FGraphPanel.py</id>
	<title>CubicSpline/1002/GraphPanel.py - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=CubicSpline%2F1002%2FGraphPanel.py"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=CubicSpline/1002/GraphPanel.py&amp;action=history"/>
	<updated>2026-05-15T20:57:54Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.8</generator>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=CubicSpline/1002/GraphPanel.py&amp;diff=31022&amp;oldid=prev</id>
		<title>imported&gt;Unknown at 05:23, 7 February 2021</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=CubicSpline/1002/GraphPanel.py&amp;diff=31022&amp;oldid=prev"/>
		<updated>2021-02-07T05:23:03Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt; from wxPython.wx import *&lt;br /&gt;
 from Numeric import *&lt;br /&gt;
 from NaCurves import *&lt;br /&gt;
 &lt;br /&gt;
 class GraphPanel(wxScrolledWindow):&lt;br /&gt;
 	def __init__(self, parent, id=NewId(), pos=wxDefaultPosition, size=wxDefaultSize):&lt;br /&gt;
 		wxScrolledWindow.__init__(self, parent, id, pos, size)&lt;br /&gt;
 		self.normalFunc = NormalFunction()&lt;br /&gt;
 		self.lagrange = Lagrange(DATASET)&lt;br /&gt;
 		self.piecewiseLagrange = PiecewiseLagrange(DATASET, 4)&lt;br /&gt;
 		self.cubicSpline = Spline(DATASET)&lt;br /&gt;
 		self.errorLagrange = ErrorLagrange(DATASET)&lt;br /&gt;
 		self.errorPiecewiseLagrange = ErrorPiecewiseLagrange(DATASET, 4)&lt;br /&gt;
 		self.errorCubicSpline = ErrorSpline(DATASET)&lt;br /&gt;
 &lt;br /&gt;
 		EVT_PAINT(self, self.OnPaint)&lt;br /&gt;
 &lt;br /&gt;
 	def mappingToScreenX(self, x):&lt;br /&gt;
 		cx,cy = self.GetClientSizeTuple()&lt;br /&gt;
 		return (x) * (cx / 2) + cx / 2&lt;br /&gt;
 &lt;br /&gt;
 	def mappingToScreenY(self, y):&lt;br /&gt;
 		cx,cy = self.GetClientSizeTuple()&lt;br /&gt;
 		return (-y) * (cy / 2) + cy / 2 &lt;br /&gt;
 &lt;br /&gt;
 	def OnPaint(self, event):&lt;br /&gt;
 		dc = wxPaintDC(self)&lt;br /&gt;
 		self.PrepareDC(dc)&lt;br /&gt;
 &lt;br /&gt;
 		dc.BeginDrawing()&lt;br /&gt;
 		self.drawBackground(dc)&lt;br /&gt;
 		self.drawGraph(dc)&lt;br /&gt;
 		#self.drawGuideLines(dc)&lt;br /&gt;
 		dc.EndDrawing()&lt;br /&gt;
 &lt;br /&gt;
 	def drawBackground(self, dc):&lt;br /&gt;
 		cx, cy = self.GetClientSizeTuple()&lt;br /&gt;
 		brush = wxBrush(wxColour(255,255,230), wxSOLID)&lt;br /&gt;
 		oldbrush = dc.GetBrush()&lt;br /&gt;
 		dc.SetBrush(brush)&lt;br /&gt;
 		dc.DrawRectangle(0,0, cx, cy)&lt;br /&gt;
 		dc.SetBrush(oldbrush)&lt;br /&gt;
 &lt;br /&gt;
 	def drawGuideLines(self, dc):&lt;br /&gt;
 		cx, cy = self.GetClientSizeTuple()&lt;br /&gt;
 		marginX = 100&lt;br /&gt;
 		marginY = 100&lt;br /&gt;
 		dc.DrawLine(marginX,marginY, marginX, cy-marginY)&lt;br /&gt;
 		dc.DrawLine(marginX,cy-marginY, cx-marginX, cy-marginY)&lt;br /&gt;
 &lt;br /&gt;
 	def drawGraph(self, dc):&lt;br /&gt;
 		self.plotNormalFunction(dc)&lt;br /&gt;
 		self.plotLagrange(dc)&lt;br /&gt;
 		self.plotPiecewiseLagrange(dc)&lt;br /&gt;
 		self.plotCubicSpline(dc)&lt;br /&gt;
 		self.plotErrorLagrange(dc)&lt;br /&gt;
 		self.plotErrorPiecewiseLagrange(dc)&lt;br /&gt;
 		self.plotErrorCubicSpline(dc)&lt;br /&gt;
 &lt;br /&gt;
 	def plotNormalFunction(self, dc):&lt;br /&gt;
 		self.plotGraph(dc, self.normalFunc, wxColour(255,0,0))&lt;br /&gt;
 &lt;br /&gt;
 	def plotGraph(self, dc, aFuncObject, aColor):&lt;br /&gt;
 		pen = wxPen(aColor, 1, wxSOLID)&lt;br /&gt;
 		oldpen = dc.GetPen()&lt;br /&gt;
 		dc.SetPen(pen)&lt;br /&gt;
 		for x in arange(-1.0, 1.0, 0.001):&lt;br /&gt;
 			y = aFuncObject.perform(x)&lt;br /&gt;
 			realX = self.mappingToScreenX(x)&lt;br /&gt;
 			realY = self.mappingToScreenY(y)&lt;br /&gt;
 			dc.DrawPoint(realX, realY)&lt;br /&gt;
 		dc.SetPen(oldpen)&lt;br /&gt;
 &lt;br /&gt;
 	def plotLagrange(self, dc):&lt;br /&gt;
 		self.plotGraph(dc, self.lagrange, wxColour(0,0,255))&lt;br /&gt;
 		&lt;br /&gt;
 	def plotPiecewiseLagrange(self, dc):&lt;br /&gt;
 		self.plotGraph(dc, self.piecewiseLagrange, wxColour(255,255,0))&lt;br /&gt;
 		&lt;br /&gt;
 	def plotCubicSpline(self, dc):&lt;br /&gt;
 		self.plotGraph(dc, self.cubicSpline, wxColour(0,0,0))&lt;br /&gt;
 	&lt;br /&gt;
 	def	plotErrorLagrange(self, dc):&lt;br /&gt;
 		self.plotGraph(dc, self.errorLagrange, wxColour(128,128,128))&lt;br /&gt;
 &lt;br /&gt;
 	def plotErrorPiecewiseLagrange(self, dc):&lt;br /&gt;
 		self.plotGraph(dc, self.errorPiecewiseLagrange, wxColour(255,255,200))&lt;br /&gt;
 &lt;br /&gt;
 	def plotErrorCubicSpline(self, dc):&lt;br /&gt;
 		self.plotGraph(dc, self.errorCubicSpline, wxColour(255,0,255)) &lt;/div&gt;</summary>
		<author><name>imported&gt;Unknown</name></author>
	</entry>
</feed>