Use drawing made by user in UI Axes to be animated onto graph
조회 수: 5 (최근 30일)
이전 댓글 표시
I am making a game in app developer. So far, I have made it so the user can draw their own boat (for the game) - this code is in a different app, but I can also upload it if need be.
I want to be able to save the users image that is created in the figure and then animate it on another graph (this would be in the same app).
I have a seperate app where I have made the graph animation which I will upload.
In this app (that I have uploaded) if you press the "Click to start!" button, you should see a sin graph being animated on the axes. I want to be display the user's drawing (a boat) onto the sin wave, so it looks like the boat is "creating" the graph. The code for the user being able to draw a boat I have saved in a different app.
Is it possible to do this?
Is it possible to have an image on the sine wave so it looks like the image is creating the wave?
Any help would be greatly appreciated!
댓글 수: 0
채택된 답변
Anton Kogios
2024년 4월 2일
편집: Anton Kogios
2024년 4월 2일
I've attempted this with the MATLAB logo as the image which is 'creating' the sine wave (see attached, the PNG file has to be in the same folder as the app). The problem I faced is the size of the image (~50x50) is greater than the size of a sine wave (~2x6), so I had to make the sine wave bigger and just change the axis ticks and tick labels.
Hope that helps and points you in the right direction!
댓글 수: 9
Anton Kogios
2024년 4월 4일
It's a bit hard to answer these questions without your full code but I'll do my best.
When I do a drawing, it only uses the first line I make in the graph, rather than the whole image.
You have to cycle through the number of lines you drew and add them. I was able to do this by changing:
for i = 1:numel(lineData)
xShape{i} = lineData(i).XData;
yShape{i} = lineData(i).YData;
end
and
for i = 1:numel(lineData)
addpoints(animShape, xShape{i}+x-0.5, yShape{i}+y-0.5);
end
Is it possible for the drawing to be used when the "Done" button is pressed, rather than when the first line is drawn?
I think the first question may answer this, but otherwise I'm not sure what you mean without looking at your full code.
Also, is it possible to save the colour that was used in the drawing? when I use red in the drawing it is changed to black in the graph animation.
You should be able to extract the color data from lineData.Color, and parse that in the animatedLine.
also, do you know how it would be possible to close the figure where the drawing is made?
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Animation에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!