Уроки, алгоритмы, программы, примеры

Вход на сайт

Материалы по разделам

Построения
на плоскости (2D)
Графика
в пространстве (3D)
Вычислительная
геометрия
Физическое
моделирование
Фрактальная
графика

Новые комментарии

Не получается, емаё
огромное спасибо за подробное объяснение про 3д графику на питоне, в интернете очень мало подобной информации
dobryj den, popytalas otkryt prikreplionnyj fail ctoby posmotret kak rabotaet, no mne ego ne pokazyvaet vydajet osibku. Pochemu?
Очень интересно! ии сайт крутой жалко что умирает(
У Вас число превысит максимальное число int. Можно использовать в Вашем случае uint, но лучше все переписать на double.

Счетчики и рейтинг

Рейтинг@Mail.ru Яндекс.Метрика

JavaScript

Демо JavaScript: 

var angle;
var check;
window.requestAnimFrame = (function(){
    return  window.requestAnimationFrame       || 
            window.webkitRequestAnimationFrame || 
            window.mozRequestAnimationFrame    || 
            window.oRequestAnimationFrame      || 
            window.msRequestAnimationFrame
})();
window.onload =function(){//начальная отрисовка
	var ctx = document.getElementById("paint").getContext("2d");
	angle=0;
	check=0;
	ctx.translate(250,250);
	ctx.beginPath();
	ctx.fillStyle="blue";
	//левый верхний круг

Демо JavaScript: 

 
		<canvas width = "500" height = "500" id = "paint"></canvas>
		<script>
		var x1,y1;
var x2,y2;
var check;
var check2;
window.requestAnimFrame = (function(){
    return  window.requestAnimationFrame       || 
            window.webkitRequestAnimationFrame || 
            window.mozRequestAnimationFrame    || 
            window.oRequestAnimationFrame      || 
            window.msRequestAnimationFrame
})();
window.onload =function(){
	x1=0;
	y1=0;
	x2=0;
	y2=0;
	check=0
	check2=0;
	Animation();
}
function Animation(){

Статья по теме: 
Демо JavaScript: 

//длина и ширина сanvas

<html>
	<head>
		<meta charset="utf-8"/>
	</head>
	<body>
		<input type = "text" id = "text" value = "1" size = "3"></input>
 
		<input type = "button" value = "Draw" onclick = "Click()"></input> 
		</br>
 
		<canvas id = "paint" width = "400" height = "400"> //длина и ширина сanvas
		<script>
			var ctx, canvas, h, w;
 
			var LastX, LastY;
 
			function Drawing(dx, dy)//функция отрисовки линии
			{
				ctx.beginPath();
				ctx.moveTo(LastX, LastY);
				ctx.lineTo(LastX + dx, LastY + dy);
				ctx.closePath();

Демо JavaScript: 

Для интерполяции заданной функции необходимо выбрать узлы, через которые будет проходить многочлен Нютона. Необходимо выбрать минимум 3 точки, нажав на левую кнопку мыши (не обязательно нажимать на сам график функции), и нажать кнопку "Старт".

var canvas = document.getElementById('canvas');
var ctx = canvas.getContext('2d');
var imageData;
let x = new Array(canvas.width);
let fx = new Array(canvas.height);
// Массив, через точки которого будет построен ногочлен Ньютона
let xMouse = [];
// Сдвиг координат
let offset = 300;

Статья по теме: 
Демо JavaScript: 
fractal
index.html

<!doctype html>
<html lang = "en">
	<head>
		<title> fractal </title>
        <meta charset = "utf-8">
        <script src = "script.js" defer></script>
	</head>
 
	<body>
		<div id = "main">
			<canvas id = "canvas" width = "500" height = "500"></canvas>
			<div id = "menu">
				<span> length </span>
				<label>
					<input id = "length" type = "number" size = "3" min = "1" max = "5000" value = "10">
				</label>
				<span> factor </span>
				<label>
					<input id = "factor" type = "number" size = "3" min = "1" max = "5000" value = "10">
				</label>
				<span> power </span>
				<label>
					<input id = "power" type = "number" size = "3" min = "1" max = "5000" value = "2">
				</label>
				<span> step</span>
				<label>
					<input id = "step" type = "number" size = "3" min = "1" max = "5000" value = "1">
				</label>
				<button id = "start"> Select </button>
			</div>
		</div>
	</body> 
</html>

Статья по теме: 
Демо JavaScript: 

var ctx, canvas, h, w, x0, y0, k;
 
			function Line(x1, y1, x2, y2){ //прорисовка линии
 
				ctx.beginPath();
				ctx.moveTo(x1, y1);
				ctx.lineTo(x2, y2);
				ctx.closePath();
				ctx.stroke();
 
			}
 
			function horizontal(x, y){ //горизонтальные линии
 
				Line(x, y, x+k/4, y);
				Line(x+k/4, y+k/4, x+k/4+k/4, y+k/4);
				Line(x+k/4+k/4, y-k/4,x+k-k/4, y-k/4);
				Line(x+k-k/4, y, x+k, y);
				Line(x+k/4, y, x+k/4, y+k/4);
				Line(x+k/4+k/4, y+k/4, x+k/4+k/4, y-k/4);
				Line(x+k-k/4, y-k/4, x+k-k/4, y);
 
			}
 

Демо JavaScript: 

<!doctype html> 
<html lang="en">
	<head>
		<meta charset="utf-8">
		<meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
		<title>Fire</title>
		<style type="text/css">
			body {
				background-color: #000000;
				margin: 0px;
			}
			canvas {
				width: 650px;
				height:650px;
				display: block;
			}
		</style>
	</head>
	<body>	
		<canvas id='fire' width='650' height='650'></canvas>
		<script type="text/javascript">
			// Параметры детализации
			var r = 8;

Демо JavaScript: 

			let ctx = document.getElementById('canv').getContext('2d');
			let dot_x, dot_y, sec_x1, sec_x2, sec_y1, sec_y2; // координаты точки и концов отрезка соответственно
			let x1, x2, x3, y1, y2, y3; // координаты векторов, построенных на сторонах треугольника
			let out; // расстояние между точкой и отрезком
			let hx, hy, ax, ay; // координаты тоски пересечения перпендикуляра с отрезком и 
			let cnt = 0; // флаг, считающий номер нажатия на канвас
 
			// функция обработки нажатия на канвас
			function storeGuess(event) {

Скриншот к примеру
Среда программирования: 
Notepad++

Задача: для заданных n точек на плоскости найти пару точек, расположенных ближе друг к другу с помощью алгоритма "Разделяй и властвуй".

Демо JavaScript: 

<script>
		 var ctx=document.getElementById('paintbox').getContext('2d');
 
			function draw(x1 , y1 , x2 , y2 , dep){
				if(dep == 0){
					randomColor();//изменение цвета
					ctx.fillRect(x1 , y1 , 1 , 1);
					ctx.fillRect(x2 , y2 , 1 , 1);
					return;
				}
 
				var dx = (x2 - x1)/2;
				var dy = (y2 - y1)/2;
				                             //смещение по х и у
				var	x_tmp = x1 + dx - dy ;
				var y_tmp = y1 + dy + dx;
 
 
			draw(x1 , y1 , x_tmp , y_tmp , dep - 1);	
			draw(x2 , y2 , x_tmp , y_tmp , dep - 1);	
 
			}