我想找出一種方法放大我的Mandelbrot設置點擊。我有它,所以當我點擊它稍微放大,但它不會相應地移動Mandelbrot。放大Mandelbrot
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Numerics;
namespace Project_V2
{
public partial class FractalGen : Form
{
public double zoom = 2.4;
public FractalGen()
{
InitializeComponent();
}
private void pictureBox1_Click(object sender, EventArgs e)
{
zoom -= 0.3;
Mandelbrot();
}
private void button1_Click(object sender, EventArgs e)
{
}
private void Form1_Load(object sender, EventArgs e)
{
Mandelbrot();
}
private void timer1_Tick(object sender, EventArgs e)
{
}
private void Mandelbrot()
{
Bitmap bm = new Bitmap(pictureBox1.Width, pictureBox1.Height);
DateTime StartT = DateTime.Now;
for (int x = 0; x < pictureBox1.Width; x++)
{
for (int y = 0; y < pictureBox1.Height; y++)
{
double a = (double)(x - (pictureBox1.Width/1.25))/(double)(pictureBox1.Width/zoom);
double b = (double)(y - (pictureBox1.Height/2))/(double)(pictureBox1.Height/zoom);
Complex C = new Complex(a, b);
Complex Z = new Complex(0, 0);
int u = 0;
do
{
u++;
Z = Z * Z;
Z = Z + C;
double Mag = Complex.Abs(Z);
if (Mag > 2.0) break;
} while (u < 255);
Color rgbInside = Color.FromArgb(0, 0, 0);
Color rgbOutside = Color.FromArgb(u >= 127 ? 255 : 2 * u, u >= 127 ? (u - 127) : 0, 0);
bm.SetPixel(x, y, u < 255 ? rgbOutside : rgbInside);
}
}
pictureBox1.Image = bm;
DateTime EndT = DateTime.Now;
string Time = Convert.ToString((EndT - StartT).TotalSeconds);
textBox1.Text = "Time Taken: " + Time + " Seconds";
}
private void button1_Click_1(object sender, EventArgs e)
{
zoom = 2.4;
Mandelbrot();
}
private void button2_Click(object sender, EventArgs e)
{
saveFileDialog1.ShowDialog();
}
private void saveFileDialog1_FileOk(object sender, CancelEventArgs e)
{
string name = saveFileDialog1.FileName;
pictureBox1.Image.Save(saveFileDialog1.FileName, System.Drawing.Imaging.ImageFormat.Png);
}
}
}
當前的代碼將一個值除以picturebox的寬度和高度,但是我想擁有它,所以它放大了我點擊的位置。 如何根據點擊的位置縮放圖片框?
你需要找回並與mouseposition工作。這個答案有解決方案,甚至準備一個圖片框https://stackoverflow.com/questions/7055211/how-to-get-the-position-of-a-click –
忘掉圖片框,專注於數據! - 哦,我以前告訴過你,你忽略了它。那麼,祝你好運.. – TaW
@ Taw:_「我已經告訴過你,在......之前 - 在什麼情況下?您提供該信息時是否存在刪除的問題?這有助於瞭解已經提供給OP的建議,更好地理解他們可能已經聽到的內容以及他們可能難以理解的內容。 –