Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 04.10.2012, 18:28
Jitakuzu вне форума Посмотреть профиль Отправить личное сообщение для Jitakuzu Найти все сообщения от Jitakuzu
  № 1  
Ответить с цитированием
Jitakuzu

Регистрация: Jun 2010
Сообщений: 97
По умолчанию Подскажите фрактальный алгоритм для генерации множества точек в заданном пространстве

Доброго времени суток.

Подскажите фрактальный алгоритм для генерации множества точек в заданном пространстве.
Входящие данные: ширина области, высота области, кол-во генерируемых точек, некий коэффициент/ты[, прочее, если потребуется]
На выходе хотелось бы получить множество точек, внешне напоминающих хаотичность.
Идеально подошел бы фрактал "Дракон" Хартера-Хейтуэя. Теории нашел много, применить на деле не смог

Заранее спасибо.

Старый 04.10.2012, 18:38
NikolyA вне форума Посмотреть профиль Отправить личное сообщение для NikolyA Найти все сообщения от NikolyA
  № 2  
Ответить с цитированием
NikolyA
 
Аватар для NikolyA

Регистрация: Dec 2006
Сообщений: 1,764
а какого ответа ожидаете? написание готового алгоритма с реализацией его на AS3?
__________________
а за окном атлантический океан!

Старый 04.10.2012, 18:51
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 3  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
На той же википедии есть реализации на php и Delphi.
__________________
משיח לא בא
משיח גם לא מטלפן

Старый 04.10.2012, 18:53
Jitakuzu вне форума Посмотреть профиль Отправить личное сообщение для Jitakuzu Найти все сообщения от Jitakuzu
  № 4  
Ответить с цитированием
Jitakuzu

Регистрация: Jun 2010
Сообщений: 97
Цитата:
Сообщение от NikolyA Посмотреть сообщение
а какого ответа ожидаете? написание готового алгоритма с реализацией его на AS3?
Да он легкий, я просто въехать не могу)

alatar, спасибо )

Старый 04.10.2012, 18:55
NikolyA вне форума Посмотреть профиль Отправить личное сообщение для NikolyA Найти все сообщения от NikolyA
  № 5  
Ответить с цитированием
NikolyA
 
Аватар для NikolyA

Регистрация: Dec 2006
Сообщений: 1,764
Цитата:
Сообщение от Jitakuzu Посмотреть сообщение
Да он легкий, я просто въехать не могу)
так показывай что не получается, давай въезжать вместе
__________________
а за окном атлантический океан!

Старый 04.10.2012, 18:57
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 6  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
На wonderfl куча реализаций фракталов.

Добавлено через 2 минуты
В том числе и Дракон.
__________________
משיח לא בא
משיח גם לא מטלפן

Старый 04.10.2012, 19:00
Jitakuzu вне форума Посмотреть профиль Отправить личное сообщение для Jitakuzu Найти все сообщения от Jitakuzu
  № 7  
Ответить с цитированием
Jitakuzu

Регистрация: Jun 2010
Сообщений: 97
ну вот тот же алгоритм, который на википедии
PHP код:
<?php
function st($x1,$y1,$x2,$y2,$k,$image,$pcolor)
{
  if (
$k 0)
  {
    
$xn = ($x1 $x2) / + ($y2 $y1) / 2;
    
$yn = ($y1 $y2) / - ($x2 $x1) / 2;
    
st($x2,$y2,$xn,$yn,$k 1,$image,$pcolor);
    
st($x1,$y1,$xn,$yn,$k 1,$image,$pcolor);
  } 
  else
  {
    
imageline($image,$x1,$y1,$x2,$y2,$pcolor);
  }
}
$dragon imagecreatetruecolor(640,480);
$bcolor imagecolorallocate($dragon,255,255,255);
imagecolortransparent($dragon,$bcolor);
imagefill($dragon,1,1,$bcolor);
$dcolor imagecolorallocate($dragon,255,0,0);
st(200,200,500,300,20,$dragon,$dcolor);
header("Content-type: image/png");
imagepng($dragon);
imagedestroy($dragon);
?>
тут во входящих данных 2 точки, то есть, отрезок некий, а мне нужны не отрезки, а точки. Соответственно, входящим параметром должна быть тоже точка (0, 0 например)

Старый 04.10.2012, 19:08
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 8  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Точки это только один из способов отрисовки не влияющий на алгоритм.
__________________
משיח לא בא
משיח גם לא מטלפן

Старый 04.10.2012, 19:19
Jitakuzu вне форума Посмотреть профиль Отправить личное сообщение для Jitakuzu Найти все сообщения от Jitakuzu
  № 9  
Ответить с цитированием
Jitakuzu

Регистрация: Jun 2010
Сообщений: 97
Я сделал так:
Код AS3:
var x1:Number = 0;
var z1:Number = 0;
var x2:Number = 1000;
var z2:Number = 1000;
for (var i:int = 0; i < 100; i++)
{
	var xn:Number = (x1 + x2) / 2 + (z2 - z1) / 2;
	var zn:Number = (z1 + z2) / 2 - (x2 - x1) / 2;
 
	x1 = x2;
	z1 = z2;
	x2 = xn;
	z2 = zn;
 
	trace(xn, zn)
}
Ничего хорошего не вышло - массовые скопления в определенных точках...

Старый 04.10.2012, 20:05
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 10  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Код AS3:
package 
{
	import flash.display.Graphics;	
	import flash.display.Sprite;
	import flash.display.StageAlign;
	import flash.display.StageScaleMode;
	import flash.events.MouseEvent;
 
	public class Main extends Sprite 
	{
		public function Main():void 
		{
			stage.align = StageAlign.TOP_LEFT;
			stage.scaleMode = StageScaleMode.NO_SCALE;
 
			stage.addEventListener(MouseEvent.CLICK, onClick);
		}
 
		private function onClick(e:MouseEvent):void 
		{
			var g:Graphics = this.graphics;
			g.lineStyle(1, 0);
			fractal(200, 200, 500, 300, 10);
		}
 
		private function fractal(x1:int, y1:int, x2:int, y2:int, depth:int):void
		{
 
			var tx:int;
			var ty:int;
 
			if (depth == 0)
			{
				var g:Graphics = this.graphics;
				g.drawCircle(x1, y1, 2);
				g.drawCircle(x2, y2, 2);
				return;
			}
 
			tx = (x1 + x2) / 2 + (y2 - y1) / 2;
			ty = (y1 + y2) / 2 - (x2 - x1) / 2;
 
			fractal(x2, y2, tx, ty, depth - 1);
			fractal(x1, y1, tx, ty, depth - 1);
		}
	}
}
__________________
משיח לא בא
משיח גם לא מטלפן

Создать новую тему Ответ Часовой пояс GMT +4, время: 07:55.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 07:55.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.